【问题标题】:LibGdx Setting VelocityLibGdx 设置速度
【发布时间】:2014-04-14 13:21:13
【问题描述】:

如何在 LIBGDX Box2D 中仅设置 X 方向的线速度而不影响 Y 方向的运动。我对身体施加了一个冲动,现在我想将它向右或向左移动我尝试应用以下方法:

setLinearVelocity(Vector2)

但它正在停止垂直运动。谢谢

【问题讨论】:

    标签: android libgdx box2d game-physics


    【解决方案1】:

    只需通过 getter 检索当前速度,对其进行操作并设置新速​​度。

    Vector2 velocity = body.getLinearVelocity().cpy();
    velocity.set(500, velocity.y);
    body.setLinearVelocity(velocity);
    

    【讨论】:

    • 你还需要设置吗?应该是同一个对象,所以不需要在操作后设置一个集合,对吗?我的意思是,如果你只是获得速度并操纵它。不需要副本或类似的东西。我认为你会节省一些操作。
    • @BennX 我认为这是必要的,因为在某些平台上,getter 和 setter 调用本机 C++ 代码。单独操作向量应该是不够的,您需要再次调用 setter。我不确定cpy()。返回的向量可能只是一个临时变量,并且可以更改,但为了保存,我添加了 cpy()。
    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多