我在Visual Studio 2017中的Allegro 5遊戲中實現了遊戲杆控件。我嘗試了這兩種方法:通過讓我的事件隊列在主循環中偵聽遊戲杆事件,並在遊戲杆的當前狀態下在我的主循環中每幀更新一次ALLEGRO_JOYSTICK_STATE
。但是,在查看遊戲杆的pos
值時,我發現在這兩種情況下,當杆返回中性時,實際上並沒有將x和y位置返回到0.0,而是返回非常低的值,如0.01或0.02。大多數情況下,這並不會導致問題,但即使操縱桿處於中立位置,我的玩家偶爾也會繼續緩慢移動,因爲這些值太高。Allegro 5:檢查遊戲杆是否爲「中性」
是否有可靠的方法來檢查操縱桿是否被推動?我最初想到的是將每個幀的位置「重置」爲0.0,0.0,然後僅在檢測到操縱桿移動時才更改該位置,但即使按下操縱桿,事件隊列也不會實際檢測到每幀移動,導致玩家移動時「口吃」。由於「中性」價值很低,我還考慮檢查它們是否低於某個價值,如果它們是「中性」的話,但這看起來非常不可靠,因爲每次我放棄時都會看到不同的數字操縱桿,我不知道他們可以走多高。
這個問題當然可以與您的操縱桿。嘗試重新校準。懶惰的解決方案是限制你的價值來限制接近中立的位置,但這可能會影響遊戲性。 – Rook