我正在使用庫JInput來檢測java遊戲中的控制器輸入。然而,爲了獲得軸移動的方向,我用這個:40循環中的If語句,如何避免?
gamePadContr.getComponent(Identifier.Axis.X).getPollData();
這給了我-1和1,該告訴的方向之間的小數。我希望玩家能夠移動的不僅僅是向上,向下,向左和向右,因此在我的gameloop中有40條if語句來檢查數字是否是一組數字,並增加x和y座標因此。這裏是一個例子:
if(x > .1 && x < .2 && y == 1){
// do stuff
} else
if(x > .2 && x < .3 && y == 1{
// do stuff
}
我必須檢查每一個,以確保大多數方向的考慮。
我的觀點是,40如果陳述是滯後的。 有什麼我可以做的優化呢?
幾個編輯回答問題:
不認爲這是相關的,但.1原因增量有40個不同的if語句,是因爲我檢查的X和Y軸操縱桿。可能的組合是(1,-1)(1,1)(-1,1)(-1,-1),以0.4的增量給出40種不同組合中的負值和正值。 (我不知道這是否是有意義的。
//做的東西只是通過一定量的增加玩家的X和Y座標。
你可以做
向量,sin,cos,trigonometry – Justin
當您將範圍以0.1爲增量進行分區時,-1和1之間的小數如何給出40個情況?另外,你發佈的代碼只對'x <.2'和'x> .2'作出反應;準確地說x == .2等等發生了什麼? –
你能舉一個你在'//做什麼'中做什麼的例子嗎?你如何移動播放器?你有沒有看到任何圖案?你如何使用這些模式來消除if語句? –