Avatar do usuário
Nat_2005
Novato
Novato
Autor
Mensagens: 6
Registrado em: Qua Mai 20, 2020 7:26 pm
Karma: 3

Código de pulo

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;
 
Avatar do usuário
Alex FC
Administrador
Administrador
Mensagens: 541
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 1063

Contato:

Re: Código de pulo

Dom Jun 14, 2020 8:01 pm

No seu código do pulo você está checando se há colisão com o obj_solid. E pelo seu código isso nunca vai acontecer, pois pra haver colisão um objeto tem que 'entrar' no outro e não apenas ficar em cima ou do lado.

Logo tu tem que chegar se abaixo da posição do player há colisão, basta colocar y + 1 no place_meeting:

if place_meeting(x, y + 1,obj_solid) and key_jump {
    vspd = -5;
}


Mova esse código pra parte acima da region COLISÃO pra evitar futuros problemas, ou seja logo depois da region MOVIMENTAÇÃO.

Abraços
2
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!
 
Avatar do usuário
Nat_2005
Novato
Novato
Autor
Mensagens: 6
Registrado em: Qua Mai 20, 2020 7:26 pm
Karma: 3

Re: Re: Código de pulo

Qui Jun 18, 2020 1:23 pm

Na colisão vertical, certo?
 
Avatar do usuário
Alex FC
Administrador
Administrador
Mensagens: 541
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 1063

Contato:

Re: Re: Código de pulo

Qui Jun 18, 2020 7:06 pm

Nat_2005 escreveu:
Na colisão vertical, certo?

Hein? xD

Resumo: Modifique seu código de pulo como falei, tire ele lá do fim e coloque antes dos códigos de colisão.
1
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

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