Entrar
Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game makerpor Ralphed Ontem à(s) 18:28
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
[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
|
|