AceKiron
Member
With my current movement system the player can move in both X and Y axis at a time. But I want it to either move on the X or the Y axis, not both at the same time. I already added 2 variables to indicate if the player is moving and in what axis (X = 0, Y = 1). I can't seem to figure it out how to do it, so can anyone help me please?
I don't have PayPal or anything so the only thing I can pay with is putting the name of the user(s) that help me in the final credits.
Code:
script_get_input();
if (run_key) {
var spd = run_speed;
} else {
var spd = walk_speed;
}
var moveX = (right_key - left_key) * spd;
var moveY = (down_key - up_key) * spd;
if (moveX == 0 && moveY == 0) {
moving = false;
} else {
if (moveX != 0) {
if (place_meeting(x + moveX, y, object_collidable)) {
repeat(abs(moveX)) {
if (!place_meeting(x + sign(moveX), y, object_collidable)) {
x += sign(moveX);
} else {
break;
}
}
moveX = 0;
}
moving_axis = 0;
moving = true;
}
if (moveY != 0) {
if (place_meeting(x, y + moveY, object_collidable)) {
repeat(abs(moveY)) {
if (!place_meeting(x, y + sign(moveY), object_collidable)) {
y += sign(moveY);
} else {
break;
}
}
moveY = 0;
}
moving_axis = 1;
moving = true;
}
}
x += moveX;
y += moveY;