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.

Problemas com movimento diagonal

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
AragaSam
Artista
Artista
Reações: 0
Mensagens: 18

Problemas com movimento diagonal

Mensagem por AragaSam » Sex Jan 04, 2019 11:07 am

Não sei o que esta havendo com meus códigos de movimentação que todos que fiz estão andando normalmente nas diagonais superior esquerda e inferior direita, mas que não funcionam com as diagonais inferior esquerda e superior direita
Depois desse problema busquei por códigos prontos aqui do fórum pois pensei que estava fazendo algo errado e aconteceu a mesma coisa com eles também, no momento estou usando o script desse tutorial:  https://tgmbrasil.com.br/viewtopic.php? ... a+s+d#p103
Vale lembrar que no próprio tutorial o autor mostra que para cancelar o movimento das diagonais é preciso declarar algumas variaveis da direção como falsas.
edit: não entendo muito de gml mas é possivel que tenha algo a ver com as direções que estão se cancelando terem valores positivos e negativos e se anularem?
Uso o GMS2

create:

// bussola
left=false
right=false
up=false
down=false
vel = 2

O código do step é o seguinte:

///////////
// ANDAR //
///////////

if keyboard_check(ord ("A")){left=true}
if keyboard_check(ord ("D¨")){right=true}
if keyboard_check(ord("W")){up=true}
if keyboard_check(ord ("S")){down=true}

if keyboard_check(ord ("A")) && left=true
{
repeat (vel)
   {
       if place_free(x-1,y){x-=1}
   }
sprite_index=spr_player_movendo_esquerda
}

if ! keyboard_check(ord ("A")) && left=true {
sprite_index = spr_player_parado_esquerda
left=false
}


if keyboard_check(ord ("D")) && right=true
{
repeat(vel)
   {
       if place_free(x+1,y){x+=1}
   }
sprite_index=spr_player_movendo_direita
}

if ! keyboard_check(ord ("D")) && right=true {
sprite_index=spr_player_parado_direita
right=false
}

if keyboard_check(ord ("W")) && up=true
{
repeat (vel)
   {
       if place_free(x,y-1){y-=1}
   }
sprite_index=spr_player_movendo_cima
}

if ! keyboard_check(ord ("W")) && up=true {
sprite_index = spr_player_parado_cima
up=false
}


if keyboard_check(ord ("S")) && down=true
{
repeat(vel)
   {
       if place_free(x,y+1){y+=1}
   }
sprite_index=spr_player_movendo_baixo
}

if ! keyboard_check(ord ("S")) && down=true {
sprite_index=spr_player_parado_baixo
down=false
}
42

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Problemas com movimento diagonal

Mensagem por None » Sex Jan 04, 2019 12:11 pm

Segue o link para meu curso

https://goo.gl/N7vWCz

Na seção de sistemas, as aulas de colisão top-down estão desbloqueadas e as de animação também.

Espero que ajude
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Avatar do usuário
AragaSam
Artista
Artista
Reações: 0
Mensagens: 18

Re: Problemas com movimento diagonal

Mensagem por AragaSam » Dom Jan 06, 2019 1:01 pm

Muito obrigado por disponibilizar os videos, consegui ver até o segundo vídeo de colisão
Ajudou muito
42

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Problemas com movimento diagonal

Mensagem por None » Dom Jan 06, 2019 1:59 pm

Se precisar de algum outro vídeo é só falar.

Aí eu libero ele, só tente me dar um período específico em que você vai ver
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Responder

Quem está online

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