I was wondering about endless loops.BUt as far as I can see spd can never be 0 as when the rabbit is static it just runs a script with nothing but a chance to not be static anymore (Move left or right)
The only other instance that could be casuing this is the player obj. Do you mind taking a look for any issues, my eyes have looked at this code for far too long with no idea what's going wrong :P
///player create event
///player varibles
state = state.run;
//movement
globalvar CanMove;
CanMove = true;
globalvar CanJump;
CanJump = true;
grav = 1; // gravity
spd = 0.5;
carryspd = 1
jspd = 5;
hspd = 0;
vspd = 0;
//combat+stamina
CanFight = true;
Stamina = 5
//step event is just my switch state for states and mouse wheel to spawn rabbits for debug reasons
///collision and movement
scr_inputs();
//if we're touching the solid
/// Check for solid
if (place_meeting(x, y+1, obj_solid)) {
vspd= 0;
// Gravity
if (vspd < 3) {
vspd += grav;
}
}
vspd += grav;
// Moving to the right
if (rkey){
hspd = spd;
sprite_index = spr_player_running;
image_xscale = 1;
image_speed = 0.2
}
/// Moving to the left
if (lkey) {
hspd = -spd
sprite_index = spr_player_running;
image_xscale = -1;
image_speed = 0.2
}
///Check for not
if ((!rkey && !lkey) || (rkey && lkey)) {
hspd = 0
sprite_index = spr_player_static;
}
// horizontal collisions
if (place_meeting (x+hspd,y+0 , obj_solid)) {
while (!place_meeting(x+sign(hspd),y, obj_solid)) {
x+=sign(hspd);
}
hspd=0
}
// Move horizontally
x+=hspd;
// vertical collisions
if (place_meeting (x, y+vspd,obj_solid)) {
while (!place_meeting(x, y+sign(vspd),obj_solid)) {
y+=sign(vspd);
}
vspd=0;
}
// Move horizontally
y+=vspd