java使用LibGDX中的Touchpad以45°的步幅移动播放器
我使用LibGDX中Touchpad
类的touchpad
来移动播放器。但现在我希望玩家只能在8个特定方向上移动,这取决于touchpad
的knob
的位置,而不是在每个可能的方向上:
上,上右,右,右下,下,下左,左,左上。所以这些方向之间的夹角是45°
移动的当前代码为:
player.setX(player.getX() + touchpad.getKnobPercentX() * Constants.SPEED);
player.setY(player.getY() + touchpad.getKnobPercentY() * Constants.SPEED);
我必须改变什么,使玩家只能在这八个方向中的一个方向上移动?我想我得把旋钮的位置转一下,但我不知道该怎么做
除此之外,我更希望touchpad
的knob
不再“平稳”移动,而只是“跳跃”到这八个位置中的一个,以便玩家直接看到当前活动的方向
有人能帮我解决这个问题吗?或者有没有别的办法
先谢谢你
# 1 楼答案
试试这个,我花了一个小时才弄明白,所以我希望它对你有用
基本上,它找到旋钮的角度,并从中找到方向(八个方向中的一个)。方向乘以45度
Math.PI/4
得到与之对应的角度