精灵在一个方向上无限期地移动或被困在对角线上



我正在做一个游戏项目,有一个基地可以帮助我开始。总的来说,这个基础非常有用,但代码中有一部分让我对如何正确操作感到困惑。

当运行此代码时,玩家精灵将无限期地向某个方向移动,直到使用另一个按键为止。如果添加了一个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;
    }
  }

最新更新