C# 精灵在一个方向上无限移动,或者卡在对角线上
我正在做一个游戏项目,有一个基地帮助我开始。该库总体上非常有用,但是有一部分代码让我对如何正确操作感到困惑 运行此代码时,播放机精灵将无限期地沿某个方向移动,直到使用另一个按键为止。如果添加了playerMoveY,它将在对角线上移动C# 精灵在一个方向上无限移动,或者卡在对角线上,c#,C#,我正在做一个游戏项目,有一个基地帮助我开始。该库总体上非常有用,但是有一部分代码让我对如何正确操作感到困惑 运行此代码时,播放机精灵将无限期地沿某个方向移动,直到使用另一个按键为止。如果添加了playerMoveY,它将在对角线上移动 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Left) { player
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\u KeyDown
方法类似,请对keydup
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
playerMoveX = 0;
}
else if (e.KeyCode == Keys.Right)
{
playerMoveX = 0;
}
}
我认为需要更多的代码来理解您的问题。首先,如何使用playerMoveX?是三角洲吗?如果是,是否在精灵移动后将其设置为0?如何使用它?playerXPos=playerXPos+playerMoveX;请记住,如果玩家同时按下左键和右键,然后释放其中一个键,其他键将停止,如果玩家从左/右等方向快速改变方向,则可能会发生这种情况。有时,移动控制可能会非常灵活。我看到这个问题,尤其是现在我添加了Y轴,并希望沿对角线移动。最简单的修改方法是什么?