Como realizar isso?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como realizar isso?

Mensagem por Nyronmi em Qua 22 Ago 2012, 21:21

Bem, eu jogo um jogo Indie chamado The Binding of Isaac, video abaixo:

Spoiler:

E, como podem ver tem um sistema legal, no qual atira para Norte, Sul, Leste e Oeste, (com WASD) com um pequeno intervalo entre os tiros.
E gostaria que me ensinassem a fazer isso, pois os tutoriais que vi são tiros, mas em plataforma e no mouse.
E se possivel, gostaria também de saber o que faz o personagem ter uma suavização no movimento, e não parar na hora, obrigado desde já.

Nyronmi

Número de Mensagens : 3
Data de inscrição : 22/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como realizar isso?

Mensagem por gabrielsch em Qui 23 Ago 2012, 00:03

Para fazer ele atirar para os 4 lados basta declarar uma variavel que controle isso, como por exemplo:
Código:

lado = 1

/*
1 = Cima
2 = Direita
3 = Baixo
4 = Esquerda

E quando for atirar, apenas verifique o valor da variável e faça o tiro ir para a direção desejada.

___

Sobre o movimento suave do jogador, isso se chama fricção/atrito, existe uma variável no Game Maker chamada friction que faz o trabalho para você, basta definir um valor há ela que a mesma vai aplicar na velocidade do objeto (speed/vspeed/hspeed).

___

Não sei qual seu nivel de experiencia com o Game Maker, mas, se não souber alguma coisa é só perguntar!

Flw! sorrindo2

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Como realizar isso?

Mensagem por Nyronmi em Qui 23 Ago 2012, 16:21

Os tiros eu já intendi, agora só falta um pequeno intervalo entre eles, pois está indo como se fosse um laser....

O movimento eu ainda não intendi!

Obrigado.

Nyronmi

Número de Mensagens : 3
Data de inscrição : 22/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como realizar isso?

Mensagem por vinians em Qui 23 Ago 2012, 16:34

Amigo, como o gabrielsch disse, vamos definir um tipo de amortizador de movimento que o GM chama friction. Pra fazer esse tipo de movimento basta algo do tipo:
Coloque no Evento Create:
Código:

[b]friction [/b]= 0.01; // decrementa 1 centésimo a cada STEP (mude aqui)
Agora no Evento KeyPressed (Any Key):
Código:

if (keyboard_lastchar == 'W') vspeed = -2;
if (keyboard_lastchar == 'S') vspeed = 2;
if (keyboard_lastchar == 'A') hspeed = -2;
if (keyboard_lastchar == 'D') hspeed = 2;
VSPEED e HSPEED são variáveis internas de cada instância que determinam o movimento dos eixos vertical e horizontal respectivamente. Assim, quando colocamos -2 ou 2 alimentamos esse eixo que é "comido" pelo friction.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como realizar isso?

Mensagem por Nyronmi em Dom 26 Ago 2012, 13:15

Obrigado, agora só falta o alarm, que eu ainda não consegui, se alguém conseguir, vou deixar o download do meu projeto para verem como os códigos estão e colocar alarm, do jeito que saia 2 tiros por segundo...

http://www.mediafire.com/?n4ix8gadr9fueuc

Nyronmi

Número de Mensagens : 3
Data de inscrição : 22/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como realizar isso?

Mensagem por Conteúdo patrocinado Hoje à(s) 21:57


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum