首页 > 解决方案 > 按住按钮使对象移动一次

问题描述

我试图让一个立方体在它被按下的方向上移动 100px。但是如果按键被按住,它仍然只会移动一次,直到按键被释放并再次按下。

         if (Keyboard.GetState().IsKeyDown(Keys.Right))
        {
            mx += 100;

        }

标签: c#monogame

解决方案


您可以使用标志来实现这一点。

在某处定义bool flag(我不知道您是否可以使用局部变量并应该使用字段,这取决于您的主循环的外观)然后:

if (Keyboard.GetState().IsKeyDown(Keys.Right))
{
    if(!flag)
    {
        mx += 100;
        flag = true; // set when changing value
    }
}
else
    flag = false; // reset when button is not down

这将增加mx一次。要再次增加它,必须释放按钮。


推荐阅读