C
Chillbot17
Guest
I recently tried to code an enemy to jump over walls and gaps and had success in a way. They do jump, but constantly in a pogo style. What I'm aiming for is having the enemies detect when there is an obstacle or absence of floor where they're going and jump then as opposed to constant jumping. Occasionally they'll revert to my desired state, but after one jump they'll go back to pogo.
Here is my code for the script and the variables I set, hopefully this can help with troubleshooting:
Script:
vspeedplayer_ +=gravity_;
if place_meeting(x+hspeedplayer_, y, obj_wall)
{ { if (enemyjump_limit_ = 1){
vspeedplayer_ = enemyjump; enemyjump_limit_ = 0 } else { vspeedplayer_ +=gravity_; } }
enemyjump_limit_ = 1;
hspeedplayer_ = 0;
}
x +=hspeedplayer_;
if place_meeting(x, y + vspeedplayer_, obj_wall) {vspeedplayer_ = 0; enemyjump_limit_ = 1} else if !place_meeting(x +- 2,y,obj_wall) {
{ if (enemyjump_limit_ = 1){
vspeedplayer_ = enemyjump; enemyjump_limit_ = 0 } else { vspeedplayer_ +=gravity_; } } }
y += vspeedplayer_;
Variables:
hspeedplayer_ = 0;
vspeedplayer_ = 0;
speed_ = 8;
hspeed_push = 0;
vspeed_push = 0;
gravity_ = 1;
hp = 3;
enemyjump = -15;
enemyjump_limit_ = 1;
Here is my code for the script and the variables I set, hopefully this can help with troubleshooting:
Script:
vspeedplayer_ +=gravity_;
if place_meeting(x+hspeedplayer_, y, obj_wall)
{ { if (enemyjump_limit_ = 1){
vspeedplayer_ = enemyjump; enemyjump_limit_ = 0 } else { vspeedplayer_ +=gravity_; } }
enemyjump_limit_ = 1;
hspeedplayer_ = 0;
}
x +=hspeedplayer_;
if place_meeting(x, y + vspeedplayer_, obj_wall) {vspeedplayer_ = 0; enemyjump_limit_ = 1} else if !place_meeting(x +- 2,y,obj_wall) {
{ if (enemyjump_limit_ = 1){
vspeedplayer_ = enemyjump; enemyjump_limit_ = 0 } else { vspeedplayer_ +=gravity_; } } }
y += vspeedplayer_;
Variables:
hspeedplayer_ = 0;
vspeedplayer_ = 0;
speed_ = 8;
hspeed_push = 0;
vspeed_push = 0;
gravity_ = 1;
hp = 3;
enemyjump = -15;
enemyjump_limit_ = 1;