Código de pulo
Enviado: Dom Jun 14, 2020 6:59 pm
Meu personagem não está pulando. Quero que ele pule toda vez que eu pressionar a tecla W.
Bem, eu coloquei que y+ é vspd, e quando ela é pressionada o personagem deve ir y= -5, mas não está dando certo.
Se souberem o que está acontecendo, me expliquem com a correção do código.
Step
#region CONTROLES
key_right = keyboard_check(ord("D")) //Direita
key_left = keyboard_check(ord("A")) //Esquerda
key_jump = keyboard_check_pressed(ord("W")) //Pular
#endregion
#region MOVIMENTAÇÃO_VIRAR O PERSONAGEM
var move = key_right - key_left
hspd = move * spd
vspd = spd + grv
if (hspd != 0) image_xscale = sign(hspd) * 2.5 //Virar o personagem
#endregion
#region COLISÃO
//Colisão_horizontal
if place_meeting(x+hspd,y,obj_solid){
{
while(place_meeting(x+sign(hspd),y,obj_solid)
)
x = x + sign(hspd);
}
hspd = 0;
}
x = x + hspd;
//Colisão_vertical
if place_meeting(x,y+vspd,obj_solid)
{
while(!place_meeting(x,y+sign(vspd),obj_solid))
{
y = y + sign(vspd);
}
vspd = 0;
}
y = y + vspd;
#endregion
#region PULO
if place_meeting(x,y,obj_solid) and key_jump{
vspd-=5;
}
#endregion
Creat
spd = 5;
hspd =0;
vspd =0;
grv = 4;
gravity_direction = 270;
y += vspd;
x += hspd;
Bem, eu coloquei que y+ é vspd, e quando ela é pressionada o personagem deve ir y= -5, mas não está dando certo.
Se souberem o que está acontecendo, me expliquem com a correção do código.
Step
#region CONTROLES
key_right = keyboard_check(ord("D")) //Direita
key_left = keyboard_check(ord("A")) //Esquerda
key_jump = keyboard_check_pressed(ord("W")) //Pular
#endregion
#region MOVIMENTAÇÃO_VIRAR O PERSONAGEM
var move = key_right - key_left
hspd = move * spd
vspd = spd + grv
if (hspd != 0) image_xscale = sign(hspd) * 2.5 //Virar o personagem
#endregion
#region COLISÃO
//Colisão_horizontal
if place_meeting(x+hspd,y,obj_solid){
{
while(place_meeting(x+sign(hspd),y,obj_solid)
)
x = x + sign(hspd);
}
hspd = 0;
}
x = x + hspd;
//Colisão_vertical
if place_meeting(x,y+vspd,obj_solid)
{
while(!place_meeting(x,y+sign(vspd),obj_solid))
{
y = y + sign(vspd);
}
vspd = 0;
}
y = y + vspd;
#endregion
#region PULO
if place_meeting(x,y,obj_solid) and key_jump{
vspd-=5;
}
#endregion
Creat
spd = 5;
hspd =0;
vspd =0;
grv = 4;
gravity_direction = 270;
y += vspd;
x += hspd;