[MOB] [GM:S]Criando um virtualpad
Enviado: Sex Abr 29, 2016 10:28 am
- Título: Criando um virtualpad
- Versão do GM: Studio Professional
- Dificuldade: Básica
- Requer extensões: Não
- Requer DLL's: Não
- Tags: virtualpad, virtual key, gui, interface
Imagem do jogo Stardash
Todos esses elementos devem ficar a parte de alterações como rotação da tela, efeitos no jogo e etc. Devem ser desenhados como em, digamos, uma surface própria. Para fazer isso, utilizamos a GUI (Game User Interface). É na GUI que colocamos esses elementos. Caso você abra seu Studio e procure nos eventos, verá que no Draw, existe um subevento chamado Draw GUI. É nele que desenharemos todas as imagens pertencentes ao nosso pad.
Antes de usar os eventos da GUI, temos que criar uma view. Por quê? Bem, porque primeiro, todo jogo de mobile vai usar uma view, de qualquer jeito. Segundo, todas as imagens vão seguir o personagem, ou o que quer que seja principal no jogo (isso não é necessariamente correto, caso você tenha um game estático).
Começando, crie um objeto (obj_player) e nele ponha os movimentos direcionais básicos (esquerda e direita), com as teclas correspondentes (left, right). Crie uma sprite qualquer para ele, pode ser um quadrado básico mesmo.
Depois crie 2 sprites (spr_left, spr_right) e coloque essas duas imagens, respectivamente (deixe o Center em 0 e 0 mesmo:)
Agora, crie uma room de tamanho qualquer (grande, preferencialmente) e crie uma view de 800x600.
Finalizada essa parte, crie um objeto (obj_control) e no evento Create ponha esse código:
Código: Selecionar todos
guiw=view_wport[numero]
guih=view_hport[numero]
esq=virtual_key_add(16,468,100,100,vk_left)
dir=virtual_key_add(132,468,100,100,vk_left)
virtual_key_show(esq)
virtual_key_show(dir)
Veja que, por último, eu coloquei um código para mostrar onde as vk's estão. Caso você inicie a room, verá 2 quadrados brancos na posição estabelecida. Mas isso foi só para mostrar, apague as 2 últimas linhas e vamos colocar as sprites.
Agora, ainda no obj_controle, clique em Add Event > Draw > Draw GUI. É aqui que vamos desenhar as sprites. Lá, apenas desenhe as sprites:
Código: Selecionar todos
draw_sprite(spr_left,0,16,468)
draw_sprite(spr_left,0,132,468)
Eu não vou deixar a engine agora, porque esqueci de salvar, mas provavelmente irei pôr. Espero que aproveitem!