我正在学习gamemaker,以后自己做游戏。当我开始学习如何制作网格系统的教程时,播放器只能在我按下的任何键上移动到一个方向。我按“D”,它下降。 “A”,它也下降了。我想得到答案,以确保玩家可以在网格移动类型上向所有方向移动,而不是让玩家向下移动的所有键。
“创建”代码:
gridSize = 32;
moveSpeed = 4;
isMoving = false;
moveTimer = 0;
speedX = 0;
speedY = 0;
“步骤”代码:
if(isMoving == false)
{
if(keyboard_check(ord("D") or vk_right))
{
isMoving = true;
moveTimer = gridSize;
speedX = moveSpeed;
speedY = 0;
}
if(keyboard_check(ord("A") or vk_left))
{
isMoving = true;
moveTimer = gridSize;
speedX = -moveSpeed;
speedY = 0;
}
if(keyboard_check(ord("W") or vk_up))
{
isMoving = true;
moveTimer = gridSize;
speedX = 0;
speedY = -moveSpeed;
}
if(keyboard_check(ord("S") or vk_down))
{
isMoving = true;
moveTimer = gridSize;
speedX = 0;
speedY = moveSpeed;
}
}
if(isMoving == true)
{
x += speedX;
y += speedY;
moveTimer -= moveSpeed;
if(moveTimer == 0) isMoving = false;
}
--尝试-- 我试图将每个“if pressed key”语句放在不同的“if isMoving is false”语句中,但没有用。我试图删除“如果按下“S”或向下箭头”以测试持续向下是否会停止,但之后所有键都会上升。我很困惑......
谁愿意帮助我,谢谢。