我一直在尝试在我的游戏中实现一个聊天系统,到目前为止,我接受它接受文本字符串,我正在尝试实现特殊字符,如句号,逗号和撇号。
例如,这是您通常获取句点和逗号的方式:
if (currentKeyboardState.IsKeyDown(Keys.OemPeriod);
if (currentKeyboardState.IsKeyDown(Keys.OemComma);
但是,在这种情况下,我找不到与感叹号(!)相关的任何内容。 我知道我可以检查是否按下Shift键和1键,但在这种情况下,如果我尝试做的话
if (currentKeyboardState.IsKeyDown(Keys.LeftShift) && (currentKeyboardState.IsKeyDown(Keys.D1))
text += "!";
break;
每次按Shift或1键时都会添加感叹号。 这意味着它会产生感叹号,即使预期的字符是1
感谢您的任何意见!
答案 0 :(得分:0)
我在一些Windows窗体中徘徊了一下,看看我是否可以重现这个问题。 (我不能......)了解你正在使用XNA,默认情况下没有一种简单的方法可以输入文字,因为用户输入了,也许你需要重温一下进入你试图完全捕获用户输入的方式。围绕捕获每个键进行编程似乎有点多,包括逗号,句号等键。
查看同一个问题here提出的另一个问题。
基本上您将需要获取插件或获取实用程序类来处理键盘输入。在这个thread in particular中,他们有一个TranslateChar()
方法,它将切换几种情况,包括您心爱的感叹号:
case Keys.D1: return (shift) ? '!' : '1';
希望这些信息有用!祝你好运!