【问题标题】:libgdx modelinstance translate 3d objects smoothly over timelibgdx modelinstance 随着时间的推移平滑地转换 3d 对象
【发布时间】:2026-01-25 11:10:01
【问题描述】:

当玩家使用 touchDown 输入时,我正在尝试使自上而下视图中的 3d 角色沿 x y 方向移动。 到目前为止,我有一个立方体,使用 LibGDX ModelInstance,只要触摸屏幕就会移动,但立方体只移动一定数量的单位;我真正想要的是让立方体随着时间的推移移动设定的单位数量,无论玩家调用 touchDown 事件的时间有多长。

我有这样的事情:

instance.transform.translate(movementRight);

其中 motionRight 是 Vector3(5, 0, 0); 当玩家使用 touchDown 输入时,这会将立方体向右移动 5 个单位。 我怎样才能把它连接起来更新每一帧?任何帮助表示赞赏。非常感谢!

【问题讨论】:

    标签: java eclipse 3d libgdx game-engine


    【解决方案1】:

    有一个布尔标志,指示立方体何时应该向右移动,如下所示:

    boolean isMovingRight = false;
    

    touchDown 事件中将其设置为 true,在 touchUp 事件中将其设置为 false。 p>

    然后在你的渲染方法中,做这样的事情:

    if(isMovingRight){
        instance.transform.translate(5*delta, 0, 0);
    }
    

    这将使实例每秒移动 5 个单位,这样做非常重要,使用 delta,因此它以与 FPS 无关的相同速度移动。

    【讨论】: