0

我一直在关注此链接中的教程,以在 LIBGDX 中实现触摸板。我想使用 touchpad 设置身体的线速度。我尝试按照本教程更新位置,但身体并没有移动得更平滑。

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

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

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

4

1 回答 1

2

当触摸板处于零位时,您不会处理这种情况- 我的意思是您没有代码可以让身体在那里。看看这个片段:

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

即使你不移动触摸板主体也有一些速度设置。

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

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

它将处理触摸板的零位置(并且身体将按应有的方式设置 (0, 0) 速度),并且它的速度也将基于触摸板的位置值(这意味着如果您移动触摸板,一个小身体会移动慢慢地,如果您将触摸板移动到边缘,它将以最大速度移动 - 我也应该猜到)。

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

于 2016-04-14T13:53:52.167 回答