java - 移动平台对象 - 使用 box2D 的 Android 游戏

标签 java android box2d andengine

我正在使用 And Engine 开发一款 2D 横向卷轴安卓游戏。

而Engine使用的是BOX2D物理引擎。

在我的游戏中,我有一个名为“移动平台”的对象。这是一个简单的平台,它在右/左方向上移动,并根据其当前的 X 坐标不断改变其移动方向。它工作正常,我正在使用以下方法移动它:

    body.setLinearVelocity(-1 * 5, b.getLinearVelocity().y);

现在我的问题是:很明显,玩家可能会尝试跳上这个移动平台并与之一起移动,但不幸的是,如果玩家不与该平台一起移动,他就会摔倒。

我试图让它像大多数平台游戏一样,如果玩家在平台上,玩家会自己随着平台移动(这样你就不会被迫一直试图留在这个平台上以避免跌倒下)。

到目前为止我已经尝试过或者一直在考虑:

  • 在接触监听器中检查玩家的 body 是否接触到平台的 body ,如果是,则将当前平台线速度应用于玩家
  • 增加平台的摩擦

到目前为止没有成功,我将不胜感激一些想法/提示。谢谢。

最佳答案

如果平台的摩擦系数为 1,则玩家不应该拥有与其速度相对的速度。所以只需将1f设置为移动平台FixtureDef的摩擦力场即可。

如果这不起作用,请确保在创建播放器固定装置 def 时没有传递 0 作为密度,因为运动摩擦计算为:friction=(friction coefficient )*(法向力) 那么在大多数情况下(你的包含在“大多数”中)没有质量的物体(密度 = 0)将没有摩擦。 p>

关于java - 移动平台对象 - 使用 box2D 的 Android 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451319/

相关文章:

android - Android PhoneGap 中的 device.uuid 未定义?

OSX 10.6 上 eclipse Rhostudio 的 Java 路径

android - 实现ActionBarSherlock,gradle错误

Java试图捕获非整数用户输入并使其循环

java - Android SSL 主机名未验证

c++ - Box2D 对象位置不会受到速度变化的影响

objective-c - Box2D 多边形未正确碰撞

java - libGDX Box2DDebugRenderer 绘制框太大和太小

java - 模拟器中是否有一个路径可以在权限被拒绝时以编程方式写入?

java - 如何获取不在 JSON 中但仍然是我在 android 中使用 PHP 收到的数组元素的列名称