我一直在遵循这个链接的教程在LIBGDX中实现触摸屏。我想用触控板来设定物体的线速度。我试着按照本教程更新这个位置,但是身体的移动并不顺畅。
这是我设定直线速度的代码,
public void knobinput(float dt)
{
if(touchpad.getKnobPercentX()>0)
{
gamehero.heroBody.setLinearVelocity(1.4f, 0);
}
else
{
gamehero.heroBody.setLinearVelocity(-1.4f, 0);
}
}
当我实现这个逻辑时,身体开始移动,尽管我没有通过触摸屏提供任何输入。当旋钮向右和向左转动时,我想按照上面的代码设置线性速度,但是,我不知道如何检查旋钮是右转还是左转。请帮帮忙。提前谢谢。
发布于 2016-04-14 13:53:52
当触控板处于零位置时,您不会处理这种情况--我的意思是您没有代码来阻止身体在那里。看一看这个片段:
else
{
gamehero.heroBody.setLinearVelocity(-1.4f, 0);
}
即使你不移动,触控板体也有一些速度设定。
最好的方法是直接根据触控板位置设定速度,而不需要任何条件,例如:
gamehero.heroBody.setLinearVelocity(SPEED * touchpad.getKnobPercentX(),
SPEED * touchpad.getKnobPercentY());
它将处理触控板的零位置(身体将有(0,0)按应有的速度设置),它的速度也将基于触控板的位置值(这意味着如果你移动一个触控板,一个小物体将缓慢移动,如果你将触控板移到边缘,它将以最大的速度移动--正如我所猜测的那样)。
SPEED
变量应该是您需要的最大速度。在这种情况下,可以设置SPEED = 1.4f
。
https://stackoverflow.com/questions/36623456
复制相似问题