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.

Colisão em 8 direções

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
KevemPereira
Novato
Novato
Reações: 0
Mensagens: 1

Colisão em 8 direções

Mensagem por KevemPereira » 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

Código: Selecionar todos

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

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Colisão em 8 direções

Mensagem por All-x » 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:

Código: Selecionar todos

// 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.
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

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

Responder

Quem está online

Usuários navegando neste fórum: Semrush [Bot] e 1 visitante