Rook
Member
I have a movement script which adjusts diagonal movement. I also can use it with a controller, but the diagonal movement is slightly slower with the thumbstick than when using binary keys. Any idea on how to fix it?
Code:
if (abs(gamepad_axis_value(0,gp_axislh)) > 0.2)
{
keyLeft = abs(min(gamepad_axis_value(0,gp_axislh),0));
keyRight = max(gamepad_axis_value(0,gp_axislh),0);
}
if (abs(gamepad_axis_value(0,gp_axislv)) > 0.2)
{
keyDown = abs(max(gamepad_axis_value(0,gp_axislv),0));
keyUp = abs(min(gamepad_axis_value(0,gp_axislv),0));
}
var moveX = keyRight - keyLeft;
var moveY = keyDown - keyUp;
mdirection = point_direction(0, 0, moveX, moveY);
hSpeed = lengthdir_x(speedMove , mdirection) * abs(moveX);
vSpeed = lengthdir_y(speedMove , mdirection) * abs(moveY);
if (place_meeting (x+hSpeed,y,obj_wall))
{
while (!place_meeting(x+sign(hSpeed),y,obj_wall))
{
x = x + sign(hSpeed);
}
hSpeed = 0
}
x += hSpeed;
if (place_meeting (x,y+vSpeed,obj_wall))
{
while (!place_meeting(x,y+sign(vSpeed),obj_wall))
{
y = y + sign(vSpeed);
}
vSpeed = 0
}
y += vSpeed;