我正在开展一个游戏项目,有一个帮助我入门的游戏项目。基础总体上非常有用,但是有一部分代码让我对如何正确操作感到困惑。
当运行此代码时,播放器精灵将无限期地向一个方向移动,直到使用另一个按键。如果添加了playerMoveY,它将在对角线中移动。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
playerMoveX = -1;
}
else if (e.KeyCode == Keys.Right)
{
playerMoveX = 1;
}
答案 0 :(得分:2)
如果没有看到完整的代码,那么肯定很难说,但可能是因为您没有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;
}
}