在游戏中,您通常将键视为具有状态而非字符串的按钮,因为您通常会检查按钮是向上还是向下以移动角色、射击、跳跃等。
正如其他人所说,如果您已经知道要测试的键,您应该使用 IsKeyDown 和 IsKeyUp。但是,有时您只想知道按下了哪些键。为此,您可以使用 GetPressedKeys 方法,该方法将为您提供当前在键盘上按下的键的数组。
如果您想将这些键转换为字符串,您可以在 update 方法中执行类似的操作。
private string _stringValue = string.Empty;
protected override void Update(GameTime gameTime)
{
var keyboardState = Keyboard.GetState();
var keys = keyboardState.GetPressedKeys();
if(keys.Length > 0)
{
var keyValue = keys[0].ToString();
_stringValue += keyValue;
}
base.Update(gameTime);
}
Run Code Online (Sandbox Code Playgroud)
但是,请记住,这不会是完美的。您必须添加额外的代码来处理大写和小写字母的 SHIFT 键,并且您需要过滤掉其他键,例如 Ctrl 和 Alt。也许将输入限制为仅字母数字值等等..
祝你好运。