2011-05-15 44 views
0

我一直想创建一个游戏引擎,但我想解决一些问题,如如何控制。是否可以将控件映射到键盘上的物理位置而不是单个的按键本身?如何将控件映射到物理键盘位置

我想这样做是因为我认为只需配置为“W”的控件,向下的“S”控件对任何不使用qwerty并需要重新配置到这是一款游戏的创作者,其中包括像我这样的Dvorak用户,或者只是决定改变系统默认设置的人。

如果有问题,我可能会使用C++和Boost,SFML和Qt。

+0

即使“WASD”键映射到Dvorak键盘上的不同字母,如果您使用了关键位置,我仍然必须为自己重新配置,因为我更喜欢使用“ESDF”,因为我是一名触摸打字员,这使我的手指舒适在“家”行。我不认为我会喜欢尝试从顶部的第三排左侧选择“第四把钥匙”而不是“E”。另外,所有键盘的物理布局并非万能:) – 2011-05-15 02:31:50

+0

@Arnold Spence我认为你错过了我的观点。我想创建一个键和底层硬件之间的抽象,使配置本身不可知于不同的布局。决不会影响易用性。所以,虽然你会配置“E”在游戏中做某些事情,但实际上你正在设置“从顶部第三排左起第四个键”。因此,在QWERTY中,“E”是“Location1”,但如果您要更改为Dvorak,那么“。”是“Location1”。这也提出了键可能与触摸打字员无关。 – user754124 2011-05-15 04:10:07

回答

1

可能最好的方法是只需在.ini或文本文件中有控件,然后用户就可以从那里进行配置。或者,在游戏中您可以选择一个键的菜单。即“按下按键”等。在物理布局方面,没有任何标准。

无论如何,即使那些使用qwerty键盘方式的人也想定制他们的键,例如roguelike键。

+0

我知道键盘布局不是通用的 - 能够抽象出这些差异是我想解决的一个重叠问题。我还想指出,我并没有试图限制自定义,因为即使使用QWERTY,我也想更改默认值。 – user754124 2011-05-15 04:50:38

+0

在这种情况下,你不能只为每种键盘指定不同的初始键设置吗? – LukeFitz 2011-05-15 09:31:39

+0

我不明白为什么不。我想设置初始默认值,就像使用任何传统游戏一样,但我希望找到一种方法让键自动重新配置自己,而无需基于布局和不同硬件设置的用户交互。我只是想要一个更一致的设计,而不是一个特别的解决方案,如果这意味着未来用户和用户会更方便。 – user754124 2011-05-15 17:06:37