gpt4 book ai didi

c# - 如何使用 C# 中的 Keys 枚举检测小写键?

转载 作者:太空狗 更新时间:2023-10-30 00:27:05 25 4
gpt4 key购买 nike

for (Keys k = Keys.A; k <= Keys.Z; k++)
{
if (KeyPress(k))
Text += k;
}

这段代码检测我在键盘上按下的键按钮,它会打印出控制台中按下的键。但是,我在键盘上按了“a”,但它显示为“A”。我该如何解决这个问题?

最佳答案

这是一个经常遇到的问题。问题在于 XNA 不适合从键盘获取文本输入。它旨在获取键盘上每个键的当前状态。

虽然您可以编写自定义代码来检查是否按下了 shift 等,但如果键盘不是您正在使用的键盘(例如不同的语言、不同的布局)怎么办。大多数人所做的是让 Windows 为您完成。

如果您希望文本按预期显示,您基本上需要重新创建一些内容并让 Windows 为您完成。

请在此处查看 Promit 的帖子:http://www.gamedev.net/topic/457783-xna-getting-text-from-keyboard/

用法:

将他的代码添加到您的解决方案中。在游戏的Initialize`方法中调用EventInput.Initialize并订阅他的事件:



EventInput.CharEntered += HandleCharEntered;

public void HandleCharEntered(object sender, CharacterEventArgs e)
{
var charEntered = e.Character;
// Do something with charEntered
}

注意:如果您允许输入任何字符(例如带有变音符号的外国字符等),请确保您的 SpriteFont 支持它们! (如果没有,也许只是在将其添加到文本字符串之前检查您的字体是否支持它,或者让 spritefont 使用特殊的“无效”字符)。

关于c# - 如何使用 C# 中的 Keys 枚举检测小写键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com