netoxinaa
Member
Hello, I'm building basic platformer mechanics and I want to implement object collision but I'm having a problem. This is the code I wrote (just for vertical collision):
What I intend with the while is to get the player sprite closer to the object to collide until it's one pixel away from it, but for some reason the player gets freezed way above the platform (object to collide) and doesn't fall. Am I doing something wrong?
GML:
if (vSpeed > 0) bbox_side = bbox_bottom; else bbox_side = bbox_top;
if (place_meeting(bbox_left, bbox_side + vSpeedFinal, oCollision) || place_meeting(bbox_right, bbox_side + vSpeedFinal, oCollision))
{
while (!place_meeting(bbox_left, bbox_side + sign(vSpeedFinal), oCollision) || !place_meeting(bbox_right, bbox_side + sign(vSpeedFinal), oCollision))
{
y += sign(vSpeedFinal);
}
vSpeedFinal = 0;
vSpeed = 0;
}