在LIBGDX中使用触摸板设置机身的线速度

时间:2016-04-14 12:41:22

标签: libgdx touchpad

我一直在关注此link的教程,以便在LIBGDX中实现触控板。我想使用触摸板设置身体的线速度。我尝试按照本教程更新位置但身体移动不顺畅。

这是我设置线速度的代码,

public void knobinput(float dt)
{
 if(touchpad.getKnobPercentX()>0)
{
    gamehero.heroBody.setLinearVelocity(1.4f, 0);
}
else
{
    gamehero.heroBody.setLinearVelocity(-1.4f, 0);
}
}

当我实现这个逻辑时,身体开始移动,虽然我没有通过触摸板提供任何输入。 当旋钮左右转动时,我想根据上面的代码设置线速度,但我不知道如何检查旋钮是向右还是向左转动。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:2)

当触控板处于零位置时,您无法处理这种情况 - 我的意思是您没有停止身体的代码。看看这个片段:

    else
    {
        gamehero.heroBody.setLinearVelocity(-1.4f, 0);
    }

即使您不移动触控板机身也会设置一些速度。

最好的方法是直接根据触摸板位置设置速度,无需任何条件:

    gamehero.heroBody.setLinearVelocity(SPEED * touchpad.getKnobPercentX(), 
                                        SPEED * touchpad.getKnobPercentY());

它将处理触摸板的零位(并且正文将设置(0,0)速度)并且它的速度将基于触摸板' s位置值也是(这意味着,如果你移动一个触摸板,一个小小的身体会慢慢移动,如果你将触摸板移动到边缘,它将以最大速度移动 - 我应该猜测它。)

SPEED变量应该是您需要的最大速度。在这种情况下,您可以设置SPEED = 1.4f例如。