.IsKeyDown(按键)不工作?

时间:2014-05-18 22:09:09

标签: c# xna

我是C#的新手(从Web开发世界转移)。

无论如何,我正在制作一个简单的背景颜色更改程序,它接受用户的输入。我有三个颜色变量(我将其传递给此:backgroundColor = new Color(redIntensity, greenIntensity, blueIntensity);

然后在Update()方法中我有这个:

        //[colorIntensity] = 0 then count up...when pressed
        //Changes background color
        KeyboardState keyState = new KeyboardState();

        if (keyState.IsKeyDown(Keys.R))
        {
            redIntensity++;
        }

以上代码不起作用!但是,如果我改变了:

        if(keyState.IsKeyDown(Keys.R)) ...

要:

       if(keyState.IsKeyUp(Keys.R)) ...

工作正常......

那么,有什么建议吗?

编辑:我正在使用XNA Framework。

1 个答案:

答案 0 :(得分:8)

您正在创建一个空的KeyboardState结构,因此它将始终显示所有键。

使用Keyboard.GetState方法获取当前状态:

KeyboardState keyState = Keyboard.GetState();