我和我的团队目前正在使用 SDL/OpenGL 开发 2D 平台游戏,我们希望使用 Microsoft 的 XInput 库添加对 Xbox360 游戏手柄的支持,但我们目前遇到了问题。
首先,读取密钥的方法是这样的:
bool InputMapping::Gamepad::checkKeyState(WORD button)
{
DWORD dwResult;
DWORD idPlayer = playerID - 1;
XINPUT_STATE state;
ZeroMemory( &state, sizeof(XINPUT_STATE) );
dwResult = XInputGetState( idPlayer, &state );
if ( state.Gamepad.wButtons & button)
{
return true;
}
return false;
}
如果选择的键被按下与否,此方法返回 true 或 false。
但似乎按键的轮询非常快,在菜单中,通过按钮移动非常快,我无法控制。
有一种方法可以限制 XInput 内部轮询之间的时间,还是我应该自己做?或者你推荐我什么?
如果我没有清楚地解释我,请不要犹豫。
非常感谢。