首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在LIBGDX中用TouchPad设定物体的线速度

在LIBGDX中用TouchPad设定物体的线速度
EN

Stack Overflow用户
提问于 2016-04-14 12:41:21
回答 1查看 267关注 0票数 0

我一直在遵循这个链接的教程在LIBGDX中实现触摸屏。我想用触控板来设定物体的线速度。我试着按照本教程更新这个位置,但是身体的移动并不顺畅。

这是我设定直线速度的代码,

代码语言:javascript
运行
复制
public void knobinput(float dt)
{
 if(touchpad.getKnobPercentX()>0)
{
    gamehero.heroBody.setLinearVelocity(1.4f, 0);
}
else
{
    gamehero.heroBody.setLinearVelocity(-1.4f, 0);
}
}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-14 13:53:52

当触控板处于零位置时,您不会处理这种情况--我的意思是您没有代码来阻止身体在那里。看一看这个片段:

代码语言:javascript
运行
复制
    else
    {
        gamehero.heroBody.setLinearVelocity(-1.4f, 0);
    }

即使你不移动,触控板体也有一些速度设定。

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

代码语言:javascript
运行
复制
    gamehero.heroBody.setLinearVelocity(SPEED * touchpad.getKnobPercentX(), 
                                        SPEED * touchpad.getKnobPercentY());

它将处理触控板的零位置(身体将有(0,0)按应有的速度设置),它的速度也将基于触控板的位置值(这意味着如果你移动一个触控板,一个小物体将缓慢移动,如果你将触控板移到边缘,它将以最大的速度移动--正如我所猜测的那样)。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36623456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档