我試圖從拇指的XInput獲取值,但值很奇怪,我不知道如何正確處理它們。將遊戲手柄的拇指值轉換爲範圍
如何計算,這樣我可以-1之間讀取的值(搖桿向左/向上)+1(搖桿向右/下)
類同XNA的Gamepad.GetState()。耐用型操縱桿.Left.X(-1 =向左,+1 =向右)。
任何想法?
我試圖從拇指的XInput獲取值,但值很奇怪,我不知道如何正確處理它們。將遊戲手柄的拇指值轉換爲範圍
如何計算,這樣我可以-1之間讀取的值(搖桿向左/向上)+1(搖桿向右/下)
類同XNA的Gamepad.GetState()。耐用型操縱桿.Left.X(-1 =向左,+1 =向右)。
任何想法?
按照documentation,_XINPUT_GAMEPAD.sThumbLX
是SHORT
,其價值在於-32768和32767之間。如果你想將其轉換成一個範圍[-1,1),分割值由32768.0。
我只得到-1和1,我不能得到-0.5f左右的值.. – Deukalion
不,那由於整數除法將產生零的保證值。除以32768.0。 – phonetagger
@phonetagger,很好的捕捉整數除法問題。編輯。 – Kevin
顯示您編寫的產生「奇怪」值的代碼。 – phonetagger
float x =(float)ThumbstickLeftX /(float)32768變成像= 1072693184這樣的值。如果我刪除(float),我什麼也得不到。 – Deukalion
難道是因爲死區太高或其他? – Deukalion