Questions tagged «keyboard»

5
键盘输入系统处理
注意:由于API限制(SFML),我必须轮询而不是回调。对于缺少“体面”的头衔,我也表示歉意。 我想我有两个问题。如何注册我收到的输入,以及如何处理。 处理输入 我在说的是您已经注册了例如已经按下“ A”键的事实,以及如何从那里开始操作。 我看过整个键盘的排列,例如: bool keyboard[256]; //And each input loop check the state of every key on the keyboard 但这似乎效率很低。例如,您不仅将键“ A”耦合到“玩家向左移动”,而且还会每秒检查30-60次每个键。 然后,我尝试了另一个仅查找所需密钥的系统。 std::map< unsigned char, Key> keyMap; //Key stores the keycode, and whether it's been pressed. Then, I declare a load of const unsigned char called 'Quit' or …

2
消除按键开始时的延迟
我正在做一个简单的游戏,遇到的问题之一是连续按下键时令人讨厌的延迟。 因此,基本上,例如,当我按下(很长时间)时Up,我的对象将向上移动1个单位,而不移动(大约1秒钟),然后连续向上移动1个单位(没有任何延迟)。 当前,我使用它来移动对象(SDL2): while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_UP: //Move object 1 unit up break; //Other unrelated things omitted } break; //Omitted other cases } } 我想要的是消除延迟,以便对象可以立即Up快速移动。有什么办法吗?
11 c++  sdl2  keyboard 

2
XNA / MonoGame的便携式缓冲键盘输入?
作为一个初步的解决方案,我目前在C#/ XNA游戏项目中使用Nuclex框架来缓冲键盘输入。可悲的是,nuclex依赖于SlimDX.Directinput.dll,因此据我所知只能在Windows操作系统下使用。但是,我使用MonoGame定位其他平台(Linux,OSX等),因此我正在寻找一种可移植的方式来集成所有平台上的缓冲键盘输入。有没有?

7
RTS游戏中的键盘快捷键
假设您有一个多人RTS游戏(例如,《沙丘》,《帝国时代》,《定居者》,《魔兽争霸》)。键盘上有一些命令可以用来指挥部队(停止,攻击,移动),还有一些更通用的命令,例如暂停或退出。游戏已本地化为多种语言(超过18种)。 我可以看到两种使用键盘快捷键的方式: A.在每个语言环境中使用上述命令的第一个英文字母(“ S”,“ A”,“ M”,“ P”等)。 B.在该语言环境中使用单词的第一个字母(例如,俄语快捷方式将为“С”,“А”,“Д”,“П”。德语将为“ H”,“ A”,“ S”等)。 ) 在为多个语言环境选择快捷方式时,以下哪种方法(或建议您自己使用)更好? PS当然,快捷方式可能是由玩家自定义的,但是仍然需要一些合理的默认设置。

5
处理键盘和鼠标输入(Win API)
在Windows下有多种捕获鼠标或键盘的方法。所以我尝试了其中的一些,但是每个都有优点和缺点。我想问你:使用哪种方法? 我已经尝试过这些: WM_KEYDOWN / WM_KEYUP-主要缺点是,我无法区分ALT,CONTROL或SHIFT之类的左右手键。 GetKeyboardState-这解决了第一种方法的问题,但是有一个新方法。当我得到按下Right-ALT键时,我也得到了Left-Control键已按下。仅当使用本地化的键盘布局(捷克语-CS)时,才会发生此行为。 WM_INPUT(原始输入)-此方法也不区分左手和右手键(如果我还记得的话),并且对于鼠标移动,有时会生成鼠标位置的增量值为零的消息。

4
如何处理不同的键盘布局?
假设我有一个在QWERTY布局上使用WASD控件的游戏。例如,尝试在Dvorak布局上使用这些控件并不理想(等效<A:H于QWERTY)。显然,我想使用与QWERTY相同的物理键(,aoe在DVORAK上。 我提出了一些可能的解决方案: 强制用户使用QWERTY 显然不理想,特别是对于国际用户 根据键盘布局更改快捷方式(WASD->,aoe) 强迫我为每个受支持的布局制作布局图(可自动化) 如果快捷方式不只是WASD,对于用户来说最容易 强制用户自己定义快捷方式 更灵活 烦人的快捷键是否很多 可与第二个选项结合使用 使用硬件键码 跨键盘一致吗? 通常如何处理这类事情?
10 keyboard 

2
如何将GLFW的键盘输入转发到另一个对象?
我在尝试使用GLFW3在另一个类中执行键盘事件时遇到麻烦。我遇到的问题是GLFW3使用静态函数进行输入,如下所示: static UI u; ... ... static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { u.controls(window, key, action); } u也是静态的,控件保留WSAD键的输入(这是我获取键事件的唯一方法)。从这里开始,按下一个键将显示在控制台窗口中按下哪个键。我遇到的麻烦是试图使用按下的键来操纵另一个类中的变量。 我还有一个名为MainMenu的类,该类具有该功能。update().是否可以在此函数中使用UI类?
9 opengl  c++  keyboard  glfw 

3
基于民意测验的输入的组合键
因此,假设您有一个基于轮询的输入系统 void update() { if( Keyboard[ 'A' ] ) // A is down } 假设您希望能够识别3到8个长度的按键组合(例如向下,向下,向前,向前,A代表hado-ken) 您如何最好地在轮询输入上创建通用(易于修改/可编程)的组合键输入系统?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.