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.

não sei fazer colisão Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
pudim_123123
Programador
Programador
Reações: 0
Mensagens: 4

não sei fazer colisão  Tópico resolvido

Mensagem por pudim_123123 » Qua Set 29, 2021 11:16 pm

oi, estou fazendo uma fangame de undertale e preciso de ajuda na colisão, eu sou novo no game maker e não sei fazer comandos o único que eu sei e de movimentação básica, então alguém me ajuda por favor?
aqui meu comando de step do player

Código: Selecionar todos

//movimentação

if keyboard_check(vk_left) then
{
 x -= 4;
}
if keyboard_check(vk_right) then
{
 x += 4;
}
if keyboard_check(vk_up) then
{
 y -= 4;
}
if keyboard_check(vk_down) then
{
 y += 4;
}

Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Re: não sei fazer colisão

Mensagem por Christian » Qua Set 29, 2021 11:58 pm

Não tenho muito conhecimento, mas com o pouco que tenho vou te ajudar.

Primeiro precisamos de algumas variáveis, vá no evento CREATE e crie as seguintes variáveis, elas são:

Código: Selecionar todos

vx=0;
vy=0;
vel_move=4
;

Feito isso vamos para o STEP. O que faremos aqui é setar os controles e a velocidade de movimento, para isso faremos o seguinte:

Código: Selecionar todos

//controle
var r = keyboard_check(vk_right);
var l = keyboard_check(vk_left);
var u = keyboard_check(vk_up);
var d = keyboard_check(vk_down);

//velocidade de movimento
vx = vel_move * (r - l); //mover na horizontal
vy = vel_move * (d - u); //mover na vertical
Certo. Já que já temos o controle e a velocidade de movimento vamos para a colisão.

Código: Selecionar todos

//colisão horizontal
repeat(abs(vx)){
     if (!place_meeting(x+sign(vx), y, obj_solido)){
          x += sign(vx);
     }
     else { vx = 0; }
}

//colisão vertical
repeat(abs(vy)){
     if (!place_meeting(x, y+sign(vy), obj_solido)){
          y += sign(vy);
     }
     else { vy = 0; }
}
Agora é só fazer o teste.

Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Re: Re: não sei fazer colisão

Mensagem por Christian » Qui Set 30, 2021 10:47 am

Sabe onde está escrito "obj_solido"? Pois é. Esse é um objeto que faz colisão com o teu personagem
Tenta criar um novo objeto com o nome "obj_solido" e faz o teste

Responder

Quem está online

Usuários navegando neste fórum: Google [Bot] e 8 visitantes