FoufaDjo
Member
when the object move to the left and collide with the wall he stop moving but change is direction to 0 how can i fix that
spdmax = 2;
accel = 0.5;
friction = 0.3;
if rkey hspeed += accel;
if lkey hspeed -= accel;
if dkey vspeed += accel;
if ukey vspeed -= accel;
speed = clamp(speed,-spdmax,spdmax);
if (place_meeting(x+hspeed, y, osolidobjects)) {//Horizontal Collision
while(!place_meeting(x+sign(hspeed), y, osolidobjects))
x += sign(hspeed);
hspeed = 0;
}
if (place_meeting(x, y+vspeed, osolidobjects)) {// Vertical Collision
while(!place_meeting(x, y+sign(vspeed), osolidobjects))
y += sign(vspeed);
vspeed = 0;
}
spdmax = 2;
accel = 0.5;
friction = 0.3;
if rkey hspeed += accel;
if lkey hspeed -= accel;
if dkey vspeed += accel;
if ukey vspeed -= accel;
speed = clamp(speed,-spdmax,spdmax);
if (place_meeting(x+hspeed, y, osolidobjects)) {//Horizontal Collision
while(!place_meeting(x+sign(hspeed), y, osolidobjects))
x += sign(hspeed);
hspeed = 0;
}
if (place_meeting(x, y+vspeed, osolidobjects)) {// Vertical Collision
while(!place_meeting(x, y+sign(vspeed), osolidobjects))
y += sign(vspeed);
vspeed = 0;
}