Conectar-se
Quem está conectado
22 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 22 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 29/11/2014
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Bug no Movimento - TopDown

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
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 821
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 105
Ver perfil do usuário

Re: Bug no Movimento - TopDown

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.
avatar
Data de inscrição : 29/11/2014
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

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
avatar
Ranking : Nota B
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 144

Prêmios
   : 1
   : 2
   : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

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
avatar
Data de inscrição : 29/11/2014
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

em Sab 27 Dez 2014, 13:56
esta dando erro ao abrir o arquivo. Ele abre em branco o projeto, sem nada.
avatar
Data de inscrição : 08/10/2014
Número de Mensagens : 236
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 27

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

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}
avatar
Data de inscrição : 29/11/2014
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

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?
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 09/05/2013
Número de Mensagens : 821
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 105
Ver perfil do usuário

Re: Bug no Movimento - TopDown

em Sab 27 Dez 2014, 14:53
Publiquei um tutorial agora mesmo que talvez resolva seu problema.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 21/04/2014
Número de Mensagens : 192
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1
Reputação : 12

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

em Sab 27 Dez 2014, 17:32
Reputação da mensagem: 100% (1 votos)
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};
avatar
Data de inscrição : 29/11/2014
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Bug no Movimento - TopDown

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.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum