我正在做一个游戏项目,有一个基地可以帮助我开始。总的来说,这个基础非常有用,但代码中有一部分让我对如何正确操作感到困惑。
当运行此代码时,玩家精灵将无限期地向某个方向移动,直到使用另一个按键为止。如果添加了一个playerMoveY,它将在对角线上移动。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
playerMoveX = -1;
}
else if (e.KeyCode == Keys.Right)
{
playerMoveX = 1;
}
如果没有看到完整的代码,很难确定,但这可能是因为您没有KeyUp
事件来重置移动值。
类似于创建KeyDown
事件以使用Form1_KeyDown
方法的方法,对KeyUp
尝试类似的操作
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
playerMoveX = 0;
}
else if (e.KeyCode == Keys.Right)
{
playerMoveX = 0;
}
}