Bug no Movimento - TopDown

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

Resolvido Bug no Movimento - TopDown

Mensagem por PacificoDesigner em Sab 27 Dez 2014, 10:01

Olá pessoal, tudo bem? Estou com um problema de bug no movimento, quando pressiono duas teclas e solto uma, meu player se move mas sem fazer o movimento do sprite, como corrijo isso? Segue abaixo o arquivo do exemplo, não reparem muito porque estou iniciando no GMS.

https://www.dropbox.com/s/b4sfoae9r0jiylq/NinjaBall.gmz?dl=0

PacificoDesigner

Número de Mensagens : 20
Idade : 32
Data de inscrição : 29/11/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por WellingtonBecker em Sab 27 Dez 2014, 11:55

Você teria que criar variáveis para que seu player saiba que direção esta virado. Crie variáveis booleanas como esquerda, direita, cima e baixo. Vi sua engine aqui, mas eu só trabalho com scripts e não com drag and drop.

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por PacificoDesigner em Sab 27 Dez 2014, 12:54

Entendi, queria movimentar ele que nem o jogo do The Binding of Isaac, vou dar uma estudada pra ver o que consigo. Vlw! Happy

PacificoDesigner

Número de Mensagens : 20
Idade : 32
Data de inscrição : 29/11/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por JoaoVanBlizzard em Sab 27 Dez 2014, 13:21

Não precisa fazer toda essa mão que você fez , códigos simples resolvem isso mais facilmente, veja o exemplo que fiz:

https://dl.dropboxusercontent.com/u/98340250/NinjaBall.gmz

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por PacificoDesigner em Sab 27 Dez 2014, 13:56

esta dando erro ao abrir o arquivo. Ele abre em branco o projeto, sem nada.

PacificoDesigner

Número de Mensagens : 20
Idade : 32
Data de inscrição : 29/11/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por Sewer Crawler em Sab 27 Dez 2014, 14:02


Código:
//No Step
if  keyboard_check(ord('A'))
{x-=5; sprite_index=spr_ninja_right;image_xscale=-1}
if keyboard_check (ord('D'))
{x+=5;sprite_index=spr_ninja_right;image_xscale=1}
if keyboard_check (ord('W'))
{y-=5; sprite_index=spr_ninja_up}
if keyboard_check (ord('S'))
{y+=5;sprite_index=spr_ninja_down}
if keyboard_check (vk_nokey)
{image_index=0}

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por PacificoDesigner em Sab 27 Dez 2014, 14:38

Sewer Crawler escreveu:
Código:
//No Step
if  keyboard_check(ord('A'))
{x-=5; sprite_index=spr_ninja_right;image_xscale=-1}
if keyboard_check (ord('D'))
{x+=5;sprite_index=spr_ninja_right;image_xscale=1}
if keyboard_check (ord('W'))
{y-=5; sprite_index=spr_ninja_up}
if keyboard_check (ord('S'))
{y+=5;sprite_index=spr_ninja_down}
if keyboard_check (vk_nokey)
{image_index=0}


Ok, ficou bom, mas como uso o key_press e o key release?
tentei assim:
Código:

if keyboard_check_pressed(ord('A'))
{sprite_index=spr_ninja_left}
if keyboard_check_released(ord('A'))
{sprite_index=0}
Claro que nao deu certo. O player continua se movendo sozinho, como faço para ele andar somente quando pressionar a tecla e parar quando soltar ela?

PacificoDesigner

Número de Mensagens : 20
Idade : 32
Data de inscrição : 29/11/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por WellingtonBecker em Sab 27 Dez 2014, 14:53

Publiquei um tutorial agora mesmo que talvez resolva seu problema.

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por Wendryos em Sab 27 Dez 2014, 17:32

Pacifico eu baixei e alterei alguns coisas e funcionou perfeitamente.
Primeiro apague todos evento tipo o "W" pressed O "A" e etc.

No create :

Código:
image_speed = 0;

No step :

Código:
if keyboard_check(ord('W')) { if place_free(x,y-3) y-=3;sprite_index = spr_ninja_up image_speed = .5};
if keyboard_check(ord('A')) { if place_free(x-3,y) x-=3;sprite_index = spr_ninja_left image_speed = .5};
if keyboard_check(ord('S')) { if place_free(x,y+3) y+=3;sprite_index = spr_ninja_down image_speed = .5};
if keyboard_check(ord('D')) { if place_free(x+3,y) x+=3;sprite_index = spr_ninja_right image_speed = .5};

if keyboard_check_released(ord('W')) { if place_free(x,y-3) y-=3;sprite_index = spr_ninja_up image_index = 0 image_speed = .0};
if keyboard_check_released(ord('A')) { if place_free(x-3,y) x-=3;sprite_index = spr_ninja_left image_index = 0 image_speed = .0};
if keyboard_check_released(ord('S')) { if place_free(x,y+3) y+=3;sprite_index = spr_ninja_down image_index = 0 image_speed = .0};
if keyboard_check_released(ord('D')) { if place_free(x+3,y) x+=3;sprite_index = spr_ninja_right image_index = 0 image_speed = .0};

Pronto. Very Happy


Dei uma melhora no código.:
No step
Código:
if keyboard_check(ord('W')) { if place_free(x,y-3) y-=3;sprite_index = spr_ninja_up image_speed = .5};
else
if keyboard_check(ord('A')) { if place_free(x-3,y) x-=3;sprite_index = spr_ninja_left image_speed = .5};
else
if keyboard_check(ord('S')) { if place_free(x,y+3) y+=3;sprite_index = spr_ninja_down image_speed = .5};
else
if keyboard_check(ord('D')) { if place_free(x+3,y) x+=3;sprite_index = spr_ninja_right image_speed = .5};

if keyboard_check_released(ord('W')) { if place_free(x,y-3) y-=3;sprite_index = spr_ninja_up image_index = 0 image_speed = .0};
if keyboard_check_released(ord('A')) { if place_free(x-3,y) x-=3;sprite_index = spr_ninja_left image_index = 0 image_speed = .0};
if keyboard_check_released(ord('S')) { if place_free(x,y+3) y+=3;sprite_index = spr_ninja_down image_index = 0 image_speed = .0};
if keyboard_check_released(ord('D')) { if place_free(x+3,y) x+=3;sprite_index = spr_ninja_right image_index = 0 image_speed = .0};

Wendryos

Ranking : Nota D
Número de Mensagens : 192
Data de inscrição : 21/04/2014
Notas recebidas : D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por PacificoDesigner em Sab 27 Dez 2014, 18:29

Caraca véio, ficou muito bom, agora não sei qual das duas usar ehehehehe...Se eu fizer um jogo igual a movimentação do The Binding of Isaac, acho que a primeira seria melhor, De qualquer forma vou testar com as duas. Vlw!!!

Obs: Claro que não me esquecerei dos creditos



Tópico resolvido, sera trancado e caso o autor queira reabri-lo, entre em contato com algum moderador.
Att: CRP_Max.

PacificoDesigner

Número de Mensagens : 20
Idade : 32
Data de inscrição : 29/11/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Bug no Movimento - TopDown

Mensagem por Conteúdo patrocinado Hoje à(s) 10:45


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