我正在使用库 JInput 来检测 Java 游戏中的控制器输入。但是,为了获得轴移动的方向,我使用这个:
gamePadContr.getComponent(Identifier.Axis.X).getPollData();
这给了我一个介于 -1 和 1 之间的小数,它告诉我方向。我希望玩家能够移动的不仅仅是上、下、左和右,所以我的游戏循环中有 40 个 if 语句检查数字是否是一组数字,并增加 x 和 y 坐标因此。这是一个例子:
if(x > .1 && x < .2 && y == 1){
// do stuff
} else
if(x > .2 && x < .3 && y == 1{
// do stuff
}
我必须检查每一个以确保大多数方向都被考虑在内。
我的观点是,40 个 if 语句滞后。我能做些什么来优化它吗?
一些编辑来回答问题:
不认为这是相关的,但是 .1 的增量有 40 个不同的 if 语句的原因是因为我正在检查操纵杆的 X 和 Y 轴。可能的组合是 (1, -1) (1, 1) (-1, 1) (-1, -1),以 0.1 的增量为我提供 40 种不同组合的负数和正数。(我不知道这是否有意义。
//do stuff 只是将玩家的 x 和 y 坐标增加一定数量。