Avatar do usuário
KevemPereira
Novato
Novato
Autor
Mensagens: 1
Registrado em: Sex Mai 17, 2019 6:16 pm
Karma: 5

Colisão em 8 direções

Sex Mai 17, 2019 6:24 pm

olha eu estou com muito problema, estou fazendo um projeto aqui um com a movimentação em 8 direções fiz esse codigo

var up, down, left, right;

up = keyboard_check(ord("W"));
down = keyboard_check(ord("S"));
left = keyboard_check(ord("A"));
right = keyboard_check(ord("D"));


if (up || down || left || right)  
{
    dir = point_direction(0, 0, (right - left), (down - up));
    velh = lengthdir_x(vel, dir);
    velv = lengthdir_y(vel, dir);
}
else
{
 velh = 0;
 velv = 0;
}


x += velh;
y += velv;



bom esse codigo está funcionando bem mas não consigo fazer a colisão de geito nenhum, então queria saber se vocês poderiam me ajudar
1

Tags:
 
Avatar do usuário
Alex FC
Administrador
Administrador
Mensagens: 510
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 891

Contato:

Re: Colisão em 8 direções

Sex Mai 17, 2019 6:42 pm

Pelo que vi, tu está acompanho os vídeos do @None:

https://www.youtube.com/watch?v=dIQ_SIXzpzk

No código só tem o movimento. O @None provavelmente irá liberar em breve as próximas aulas. Ele tem um grupo no Discord: https://discord.gg/p9WN6Rx

Provavelmente ele irá utilizar o mesmo código dos vídeos de movimento em plataforma.

Você pode apagar substituir as duas últimas linhas do código que postou e adicionar isso no End Step:

// Colisão hoirizontal
repeat(abs(velh))
{
   if (!place_meeting(x + sign(velh), y, obj_block))
   {
      x += sign(velh);
   }
   else
   {
      velh = 0;
      break;      
   }
}

// Colisão vertical
repeat(abs(velv))
{
   if (!place_meeting(x, y + sign(velv), obj_block))
   {
      y += sign(velv);
   }
   else
   {
      velv = 0;
      break;      
   }
}


Espero que ajude.
1
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes