Página 1 de 1

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

Enviado: Qua Set 29, 2021 11:16 pm
por pudim_123123
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;
}

Re: não sei fazer colisão

Enviado: Qua Set 29, 2021 11:58 pm
por Christian
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.

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

Enviado: Qui Set 30, 2021 10:47 am
por Christian
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