我一直在遵循这个链接中的教程,以便在LIBGDX中实现触摸板。我想用触摸板设置物体的线速度。我试着按照本教程更新位置,但身体的移动并不平滑。
这是我设置线速度的代码,
public void knobinput(float dt)
{
if(touchpad.getKnobPercentX()>0)
{
gamehero.heroBody.setLinearVelocity(1.4f, 0);
}
else
{
gamehero.heroBody.setLinearVelocity(-1.4f, 0);
}
}
当我实现这个逻辑时,身体开始移动,尽管我没有通过触摸板提供任何输入。当旋钮左右转动时,我想按照上面的代码设置线速度,但我不知道如何检查旋钮是向右还是向左转动。请帮忙。提前谢谢。
当触摸板处于零位置时,您无法处理这种情况-我的意思是,您没有停止身体的代码。看看这个片段:
else
{
gamehero.heroBody.setLinearVelocity(-1.4f, 0);
}
即使你不移动触摸板主体也有一定的速度设置。
最好的方法是直接根据触摸板位置设置速度,而不需要任何条件,如:
gamehero.heroBody.setLinearVelocity(SPEED * touchpad.getKnobPercentX(),
SPEED * touchpad.getKnobPercentY());
它将处理触摸板的零位置(身体将按应设置(0,0)速度),其速度也将基于触摸板的位置值(这意味着如果你移动触摸板,一个小身体将缓慢移动,如果你将触摸板移动到边缘,它将以最大速度移动-我想也是如此)。
SPEED
变量应该是您需要的最大速度。在这种情况下,您可以设置例如SPEED = 1.4f
。