使用Xbox控制器重置xInput中的按钮输入

时间:2013-04-24 22:18:40

标签: winapi xbox xinput

我正在使用XInput进行项目,而且我在使用xbox控制器时遇到问题。当我使用B按钮返回到先前状态时,其按下按钮的速度非常快,以至于它继续推回使用B按钮退出的多个状态。

if( ( player1.GetState().Gamepad.wButtons & XINPUT_GAMEPAD_B ) || ( player2.GetState().Gamepad.wButtons & XINPUT_GAMEPAD_B ) ) {
    return ESC_BUTTON;
}

我尝试通过添加& 1来重置缓冲区,但输入从未注册。有没有一种简单的方法来解决这个问题?

更新:

current = (DWORD)( ( start - GetTickCount() ) / 1000.f );

if( current > 0.005f )
{
    if( ( player1.GetState().Gamepad.wButtons & XINPUT_GAMEPAD_B ) || ( player2.GetState().Gamepad.wButtons & XINPUT_GAMEPAD_B ) ) 
    {
        start = GetTickCount();

        return ESC_BUTTON;
    }
}

仍有重置问题。有时它有效,有时它不会......想法?

0 个答案:

没有答案