Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Tutorial] Chamar eventos em GML
4 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial] Chamar eventos em GML
Título: Chamar eventos em GML
Versão do GM: GM8 ou superior
Dificuldade: Intermediário
Requer Extensões: não
Requer DLLs: não
Tags: GML, eventos
Oi pessoal, eu tenho um dica de como colocar eventos por GML, e nesse exemplo sem precisar de mexer no Menu Event dos objetos.
Isso poderá ser muito útil pra vocês...
Preste Atenção:
Crie um objeto qualquer, será "object0".
Crie uma room vazia (room0) e coloque o objeto na room
No menu settings da room, clique em "Creation Code" para inserir o código GML e digite:
Agora é só executar...
Entendendo:
Note que o "object0" estava vazio e sem nada, e através do Creation Code da Room inserimos um Event no objeto.
Isso também pode ser usado para fazer com que um objeto insira um Event em outro
Significa que você pode definir vários eventos através de um Event Create.
Isto é o básico para você aprender a colocar objetos externos no Game Maker sem muito esforço, e/ou também poderão criar funções bem complexas, etc...
Vocês podem usar o todos os eventos que quiserem, abaixo uma lista dos eventos em forma de Constants.
Consulte no Help do GM sobre Eventos na Documentação do GM em Português para mais informações.
Obrigado!!!
Versão do GM: GM8 ou superior
Dificuldade: Intermediário
Requer Extensões: não
Requer DLLs: não
Tags: GML, eventos
Oi pessoal, eu tenho um dica de como colocar eventos por GML, e nesse exemplo sem precisar de mexer no Menu Event dos objetos.
Isso poderá ser muito útil pra vocês...
Preste Atenção:
Crie um objeto qualquer, será "object0".
Crie uma room vazia (room0) e coloque o objeto na room
No menu settings da room, clique em "Creation Code" para inserir o código GML e digite:
- Código:
object_event_add(object0,ev_draw,0,"
draw_text(16,16,fps)
draw_text(128,16,room_speed)
");
//adiciona o Event no Object, Desenha o FPS do jogo, Desenha a room_speed
Agora é só executar...
Entendendo:
Note que o "object0" estava vazio e sem nada, e através do Creation Code da Room inserimos um Event no objeto.
Isso também pode ser usado para fazer com que um objeto insira um Event em outro
Significa que você pode definir vários eventos através de um Event Create.
Isto é o básico para você aprender a colocar objetos externos no Game Maker sem muito esforço, e/ou também poderão criar funções bem complexas, etc...
Vocês podem usar o todos os eventos que quiserem, abaixo uma lista dos eventos em forma de Constants.
- Constantes:
ev_alarm
ev_animation_end
ev_boundary
ev_close_button
ev_collision
ev_create
ev_destroy
ev_draw
ev_end_of_path
ev_game_end
ev_game_start
ev_global_left_button
ev_global_left_press
ev_global_left_release
ev_global_middle_button
ev_global_middle_press
ev_global_middle_release
ev_global_press
ev_global_release
ev_global_right_button
ev_global_right_press
ev_global_right_release
ev_joystick1_button1
ev_joystick1_button2
ev_joystick1_button3
ev_joystick1_button4
ev_joystick1_button5
ev_joystick1_button6
ev_joystick1_button7
ev_joystick1_button8
ev_joystick1_down
ev_joystick1_left
ev_joystick1_right
ev_joystick1_up
ev_joystick2_button1
ev_joystick2_button2
ev_joystick2_button3
ev_joystick2_button4
ev_joystick2_button5
ev_joystick2_button6
ev_joystick2_button7
ev_joystick2_button8
ev_joystick2_down
ev_joystick2_left
ev_joystick2_right
ev_joystick2_up
ev_keyboard
ev_keypress
ev_keyrelease
ev_left_button
ev_left_press
ev_left_release
ev_middle_button
ev_middle_press
ev_middle_release
ev_mouse
ev_mouse_enter
ev_mouse_leave
ev_mouse_wheel_down
ev_mouse_wheel_up
ev_no_button
ev_no_more_health
ev_no_more_lives
ev_other
ev_outside
ev_right_button
ev_right_press
ev_right_release
ev_room_end
ev_room_start
ev_step
ev_step_begin
ev_step_end
ev_step_normal
ev_trigger
ev_user0
ev_user1
ev_user10
ev_user11
ev_user12
ev_user13
ev_user14
ev_user15
ev_user2
ev_user3
ev_user4
ev_user5
ev_user6
ev_user7
ev_user8
ev_user9
Consulte no Help do GM sobre Eventos na Documentação do GM em Português para mais informações.
Obrigado!!!
Última edição por Dr.Harrison em Seg 12 maio 2014, 22:12, editado 5 vez(es) (Motivo da edição : mudei o título para [Tutorial])
Prometo_ser_fiel- Data de inscrição : 11/05/2014
Reputação : 1
Número de Mensagens : 6
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Chamar eventos em GML
Não entendo muito, mas parece que você está performando o create event da room como draw, não? Vamos ver o que o pessoal pode fazer com esse conhecimento, que ao menos para mim é totalmente novo.
polosam- Games Ranking :
Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
Re: [Tutorial] Chamar eventos em GML
Sim, voce pode colocar step no create também, assim:polosam escreveu:Não entendo muito, mas parece que você está performando o create event da room como draw, não? Vamos ver o que o pessoal pode fazer com esse conhecimento, que ao menos para mim é totalmente novo.
object_event_add(object0,ev_step,ev_step_normal,"image_angle+=2");
//faz imagem ficar girando
voce pode colocar o evento destroy no create também, assim:
object_event_add(object0,ev_destroy,0,"game_end()");
//quando o objeto for destruido game end
Prometo_ser_fiel- Data de inscrição : 11/05/2014
Reputação : 1
Número de Mensagens : 6
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Chamar eventos em GML
Resumindo: no drag'n'drop basta pegar um único evento, ok?
polosam- Games Ranking :
Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
Re: [Tutorial] Chamar eventos em GML
Esse é um sistema muito util, o Saim explicou bem em seu tutorial de Game Generico, da pra fazer um tipo de criador de jogos com isso, ou então, só um jogo mais profissional, usando basicamente só arquivos externos, tipo um .jar ou sei la haha
Legal por explicar isso, mas exemplifica mais os eventos e talz...
Mostra porque funciona!
Flw
Legal por explicar isso, mas exemplifica mais os eventos e talz...
Mostra porque funciona!
Flw
Tedi Ripper- Games Ranking :
Data de inscrição : 21/11/2010
Reputação : 25
Número de Mensagens : 777
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Chamar eventos em GML
Esta é uma das funções que mais senti falta no Game maker Studio (e uma das minhas favoritas também). Com ela era possível organizar muito bem o projeto.
É legal trazer para a galera esta função que considero obscura (pouco conhecida) e trazer ao conhecimento geral para um estudo mais amplo. Dá realmente para fazer muita coisa só por códigos, e considero o uso destas funções ótimas para a questão de estudo e desenvolvimento de pequenos softwares em geral, mas não aconselho para produção de jogos completos.
Se tiver interesse, tenho esse jogo que fiz á algum tempo utilizando esta função (obs: É apenas script, não é necessário baixar);
É legal trazer para a galera esta função que considero obscura (pouco conhecida) e trazer ao conhecimento geral para um estudo mais amplo. Dá realmente para fazer muita coisa só por códigos, e considero o uso destas funções ótimas para a questão de estudo e desenvolvimento de pequenos softwares em geral, mas não aconselho para produção de jogos completos.
Se tiver interesse, tenho esse jogo que fiz á algum tempo utilizando esta função (obs: É apenas script, não é necessário baixar);
- Script:
Para usar basta criar um novo jogo, vá até Creation code em Settings (nas opções da room ) e cole este código. Depois basta dar F5 e testar (não é necessário o uso de objetos, apenas uma room).- Código:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*Script by Vikintor. É autorizada a distribuição desse script, sem necessidade do nome do autor.
Game Maker Copyright
Game Maker by Mark Overmars (http://www.gamemaker.nl).
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Cria o sprite para colisões
global.sprite_c = sprite_create_from_screen(0,0,32,32,0,0,0,0)
//sprite_set_bbox_mode(global.sprite_c,2)
//sprite_set_precise(global.sprite_c,0)
//ESPECIFICAÇÕES
global.pontos_m = 'PONTOS'
global.titulo = 'JOGUINHO NERVOSO'
global.cor_titulo = c_lime
room_caption = 'Menu' //Aparece como nome da janela
show_score = false //Desabilita pontuação na borda da janela
background_color = c_navy // Cor de fundo
// draw_set_font(font0) //Fonte do texto
//NOME DAS OPÇÕES
global.b_new_game = 'NOVO JOGO'
global.b_ranking = 'RANKING'
global.b_help = 'AJUDA'
global.b_quit = 'SAIR'
//Posição do texto do menu
global.texto_posicao = 320 //Posição x onde o menu surgira
global.texto_posicaov = 240 //Posição Y onde o menu surgira
global.tamanhox = 2 //tamanho horizontal do texto
global.tamanhoy =2 //tamanho vertical do texto
global.tamanho_caixa = 100 //largura da caixa que fica atraz do texto
global.tamanho_caixav = 70 //tamanho da caixa que fica atraz do texto
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Cria o menu
global.player_0 = object_add()
object_event_add(global.player_0,ev_create,0,'
global.var_menu = 0 //Estado inicial do menu
global.var_menu_max = 3 //Numero maximo de opções do menu
global.cor_menu = c_white //cor do menu
global.cor_menu_sel = c_green //cor do menu selecionado
')
object_event_add(global.player_0,ev_step,0,'
if keyboard_check_pressed(vk_down) = true //Se a tecla BAIXO for pressionada
{
if global.var_menu < global.var_menu_max //Se o cursor esta antes do fim do menu
{
global.var_menu += 1 //Muda o numero da imagem
//sound_play(sound_cursor) //Toca som
}
else //ou
{
//Código caso o menu esteja em numero incorréto
global.var_menu = global.var_menu_max
//sound_play(sound_error)
}
}
if keyboard_check_pressed(vk_up) = true //Se a tecla ACIMA for pressionada
{
if global.var_menu > 0
{
global.var_menu -= 1
//sound_play(sound_cursor)
}
else
{
global.var_menu = 0
//sound_play(sound_error)
}
}
////////////////////////////// EVENTOS /////////////////////////////
if keyboard_check_pressed(vk_space) = true or keyboard_check_pressed(vk_enter) = true //Se a tecla SPACE ou ENTER for pressionada
{
if global.var_menu = 0
{
//Cria a bolinha que você controla
global.player_1 = object_add()
object_set_sprite(global.player_1,global.sprite_c) http://global.sprite_c é o sprite da bolinha (somente para colisão)
object_event_add(global.player_1,ev_step,0,"
sprite_get_bbox_top(global.player_1= 4)
sprite_get_bbox_left(global.player_1= 4)
sprite_get_bbox_right(global.player_1= 28)
sprite_get_bbox_bottom(global.player_1= 28)
")
//Cria os controles da bolinha
object_event_add(global.player_1,ev_step,0,"if keyboard_check(vk_up) = true then if y > 30 then y-=6")
object_event_add(global.player_1,ev_step,0,"if keyboard_check(vk_down) = true then if y < 380 then y+=6")
object_event_add(global.player_1,ev_step,0,"if keyboard_check(vk_left) = true then if x > 10 then x-=6")
object_event_add(global.player_1,ev_step,0,"if keyboard_check(vk_right) = true then if x < 600 then x+=6")
//Cria os blocos inimigos
global.evento = object_add()
global.posicao = choose(10,25,15,14,20,16,13,11,12,9,8)//Velocidade dos blocos inimigos
object_set_sprite(global.evento,global.sprite_c)
object_event_add(global.evento,ev_step,0,"sprite_get_bbox_top(global.evento= 4) sprite_get_bbox_left(global.evento= 4) sprite_get_bbox_right(global.evento= 28) sprite_get_bbox_bottom(global.evento= 26)")
object_event_add(global.evento,ev_create,0,"global.posicao = choose(10,16,13,11,12,9,8,11,10) vspeed = global.posicao hspeed = 0")
object_event_add(global.evento,ev_animation_end,0,"instance_create(random(640),0,global.evento) instance_destroy()")
instance_create(random(640),500,global.evento)
//Mostra a bolinha
object_event_add(global.player_1,ev_draw,0,"draw_set_color(c_blue) draw_ellipse_color(x-16,y-16,x+16,y+16,c_blue,c_fuchsia,0) draw_set_color(c_black)")
//Mostra os blocos inimigos
object_event_add(global.evento,ev_draw,0,"draw_rectangle_color(x-16,y-16,x+16,y+16,c_black,c_dkgray,c_silver,c_red,0)")
//Cria o objeto principal
global.evento2 = object_add()
object_event_add(global.evento2,ev_create,0,"depth = -10 alarm[0] = 100")
object_event_add(global.evento2,ev_step,0,"score += 1")
object_event_add(global.evento2,ev_alarm,0,"instance_create(random(640),500,global.evento) alarm[0] = 100")
instance_create(1,400,global.evento2)
//Mostra a pontuação na tela
object_event_add(global.evento2,ev_draw,0,"draw_set_color(c_dkgray) draw_rectangle(0,400,640,480,0) image_alpha = 0.6 draw_set_color(c_black) draw_rectangle(100,400,500,460,0) image_alpha = 1")
object_event_add(global.evento2,ev_draw,0,"draw_set_color(c_blue)draw_set_color(c_white)draw_text_transformed(270,400,score,2,2,0)")
//Cria um objeto para mostrar a chuva
global.evento3 = object_add()
object_event_add(global.evento3,ev_draw,0,"effect_create_below(ef_rain ,x,y,2,c_white)")
object_event_add(global.evento3,ev_create,0,"depth = 10")
instance_create(1,400,global.evento3)
//colisao da bola com o quadrado
object_event_add(global.player_1,ev_collision,global.evento,"highscore_show(score) game_restart()")
room_caption = "Desvie dos quadrados"
show_score = false
background_color = c_maroon
instance_create(320,272,global.player_1)
instance_deactivate_object(global.player_0)
}
if global.var_menu = 1 then highscore_show(0)
if global.var_menu = 2 then show_message("Use as teclas para controlar a bola e fazer elas desviarem dos blocos.Tente alcançar uma boa pontuação.")
if global.var_menu = 3 then game_end()
//sound_play(sound_decision)
}
')
object_event_add(global.player_0,ev_draw,0,"draw_set_halign(fa_center) draw_set_color(global.cor_titulo) draw_text_transformed(320,100,global.titulo,3,2,0) draw_rectangle_color(global.texto_posicao-global.tamanho_caixa,global.texto_posicaov-global.tamanho_caixav,global.texto_posicao+global.tamanho_caixa,global.texto_posicaov+global.tamanho_caixav,c_black,c_dkgray,c_silver,c_red,0) draw_set_color(c_white) draw_text(320,410,'Victor Follador 2010')")
object_event_add(global.player_0,ev_draw,0,"
draw_set_halign(fa_center) // alinha a fonte para o meio
if global.var_menu = 0 then draw_set_color(global.cor_menu_sel) else draw_set_color(global.cor_menu) // Se opçao 0 esta selecionada
draw_text_transformed(global.texto_posicao,global.texto_posicaov-60,global.b_new_game,global.tamanhox,global.tamanhoy,0)
if global.var_menu = 1 then draw_set_color(global.cor_menu_sel) else draw_set_color(global.cor_menu)
draw_text_transformed(global.texto_posicao,global.texto_posicaov-30,global.b_ranking,global.tamanhox,global.tamanhoy,0)
if global.var_menu = 2 then draw_set_color(global.cor_menu_sel) else draw_set_color(global.cor_menu)
draw_text_transformed(global.texto_posicao,global.texto_posicaov+0,global.b_help,global.tamanhox,global.tamanhoy,0)
if global.var_menu = 3 then draw_set_color(global.cor_menu_sel) else draw_set_color(global.cor_menu)
draw_text_transformed(global.texto_posicao,global.texto_posicaov+30,global.b_quit,global.tamanhox,global.tamanhoy,0)
draw_set_halign(fa_left)")
instance_create(320,240,global.player_0)
Não é necessário dar créditos se for utilizar.
Vikintor- Games Ranking :
Notas recebidas : B
Data de inscrição : 28/03/2010
Reputação : 17
Número de Mensagens : 901
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Dúvida] Como chamar e usar eventos em GML
» [XCREATOR] Tutorial sobre o Funcionamento dos Eventos
» [PEDIDO]Alguém me arranja um mega - tutorial ensinando como ser um progamador de eventos?
» animação chamar outra
» Eventos do GM
» [XCREATOR] Tutorial sobre o Funcionamento dos Eventos
» [PEDIDO]Alguém me arranja um mega - tutorial ensinando como ser um progamador de eventos?
» animação chamar outra
» Eventos do GM
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos