我得說,程式優化雖然是可以在後期才做,不過有些東西很明顯,不需要拖到很後面吧?
當然啦,我個人沒接觸過純Windows的程式設計,或許有些觀念真的不一樣...
因為SDL不支援搖桿震動,所以我打算在Windows端直接用微軟的XInput,然後我找到
這篇。
結果這位作者這麼寫:
if(Player1->IsConnected())
{
if(Player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_A)
{
Player1->Vibrate(65535, 0);
}
if(Player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_B)
{
Player1->Vibrate(0, 65535);
}
if(Player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_X)
{
Player1->Vibrate(65535, 65535);
}
if(Player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_Y)
{
Player1->Vibrate();
}
if(Player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_BACK)
{
break;
}
}而這是他的GetState()
XINPUT_STATE CXBOXController::GetState()
{
// Zeroise the state
ZeroMemory(&_controllerState, sizeof(XINPUT_STATE));
// Get the state
XInputGetState(_controllerNum, &_controllerState);
return _controllerState;
}難道他就沒想過,這樣一來就是一直反覆的覆寫一個變數嗎?
這真的有意義嗎?