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:
;
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