在LIBGDX中使用触摸板设置物体的线速度

在LIBGDX中使用触摸板设置物体的线速度,libgdx,touchpad,Libgdx,Touchpad,我一直在遵循本教程,在LIBGDX中实现touchpad。我想用触摸板设置物体的线速度。我尝试按照本教程更新位置,但身体的移动并不平滑 这是我设定线速度的代码 public void knobinput(float dt) { if(touchpad.getKnobPercentX()>0) { gamehero.heroBody.setLinearVelocity(1.4f, 0); } else { gamehero.heroBody.setLinearVelocit

我一直在遵循本教程,在LIBGDX中实现touchpad。我想用触摸板设置物体的线速度。我尝试按照本教程更新位置,但身体的移动并不平滑

这是我设定线速度的代码

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
例如。

当触摸板处于零位时,您无法处理这种情况-我的意思是您没有代码将身体停在那里。查看以下片段:

    else
    {
        gamehero.heroBody.setLinearVelocity(-1.4f, 0);
    }
即使不移动,触摸板主体也会设置一些速度

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

    gamehero.heroBody.setLinearVelocity(SPEED * touchpad.getKnobPercentX(), 
                                        SPEED * touchpad.getKnobPercentY());
它将处理触摸板的零位(身体将按需要设置(0,0)速度),其速度也将基于触摸板的位置值(这意味着,如果你移动触摸板,一个小物体将缓慢移动,如果你将触摸板移动到边缘,它将以最大速度移动——我猜也是如此)


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

非常感谢。!!它工作了@m.antkowicz,您能告诉我是否使用这个“触摸板”吗对重力有影响吗?因为身体下落缓慢,需要更多的时间才能到达地面。当我没有使用“触摸板”时,这个问题并没有出现是的-如果有另一个力在改变物体的位置/速度,你应该以某种方式使用当前物体的速度来处理它们。我担心简单的
gamehero.heroBody.getLinearVelocity().x+SPEED*touchpad.getKnobPercentX()
不会产生令人满意的效果-由于游戏的特点,你必须尝试如何使用当前身体的速度。你能告诉我如何相应地改变重力吗?我真的不知道,而且这个触摸板的教程更少!!帮助会很棒@m.antkowiczThanks很多。!!成功了@m.antkowicz和你能告诉我使用这个“触摸板”是否对重力有影响吗?因为身体下落缓慢,需要更多的时间才能到达地面。当我没有使用“触摸板”时,这个问题并没有出现是的-如果有另一个力在改变物体的位置/速度,你应该以某种方式使用当前物体的速度来处理它们。我担心简单的
gamehero.heroBody.getLinearVelocity().x+SPEED*touchpad.getKnobPercentX()
不会产生令人满意的效果-由于游戏的特点,你必须尝试如何使用当前物体的速度。你能告诉我如何相应地改变重力吗?我真的不知道,而且这个触摸板的教程更少!!帮助会很好@m.antkowicz