Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

[MOB] [GM:S]Criando um virtualpad

Tutoriais, videoaulas, guias e downloads para te ajudar nos estudos.
Avatar do usuário
Tutoriais & Aulas
Colaborador
Colaborador
Reações: 0
Mensagens: 110

[MOB] [GM:S]Criando um virtualpad

Mensagem por Tutoriais & Aulas » Sex Abr 29, 2016 10:28 am

Autor original: Mr. Kaleb
  • 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
Para criar um sistema de pad na tela, vamos ter que separar algumas coisas. Quando você quer criar um virtualpad, você não vai colocá-lo lá como se põe um objeto normal. O virtualpad é um objeto que não causa e nem deve receber influência nos outros objetos do jogo, assim como outros botões e outras coisas que estão presentes num jogo. Aqui vai um exemplo:

Imagem
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:)
Imagem Imagem

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)
Isso vai criar duas variáveis que determinam que o comprimento e altura da GUI é respectivamente igual ao comprimento e altura da view. Depois, cria 2 teclas virtuais no canto inferior esquerdo da tela, que é onde você vai pressionar (no seu dispositivo touchscreen) e o objeto vai se mover, caso você tenha criado-o corretamente.
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)
E pronto! Caso você inicie no seu Windows, não vai dar pra clicar, como simulação de touchscreen. Esse método só funciona para mobile ou HTML5, portanto, se você tiver como testar no seu aparelho, vai poder verificar o resultado.

Eu não vou deixar a engine agora, porque esqueci de salvar, mas provavelmente irei pôr. Espero que aproveitem!

Avatar do usuário
fanboygoku
Novato
Novato
Reações: 0
Mensagens: 12

Re: [MOB] [GM:S]Criando um virtualpad

Mensagem por fanboygoku » Sáb Mai 21, 2016 11:48 pm

vlw cara to tentando mais ainda so novo nesse negocio de game maker int se puder postar a engine eu agradeço.

Edit:
consegui, mais quebrei bastante a cabeça..e ah uns codigos estão errados concerta ai
e posta a engine.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante