我想问下面的问题。
我正在开发2D Side滚动安卓游戏,使用And Engine。
引擎使用BOX2D物理引擎。
在我的游戏中,我有一个名为“移动平台”的对象,它是一个简单的平台,它向右/向左移动,并根据当前的X坐标不断改变其移动方向。它工作正常,我正在使用它来移动它:
body.setLinearVelocity(-1 * 5, b.getLinearVelocity().y);
现在我的问题是:显然玩家可能会试图跳上这个移动平台随之移动,但不幸的是,如果玩家不会尝试使用这个平台,玩家就会摔倒。
我试图让它像大多数平台游戏一样工作,所以如果玩家在平台上,玩家正在移动平台(所以你不必继续试图留在这个平台上以避免摔倒)
到目前为止,我已经尝试过或者一直在考虑:
到目前为止没有成功,我会感激一些想法/提示 - 谢谢。
答案 0 :(得分:2)
如果平台的摩擦系数为1,则玩家不应该具有与其速度相对的速度。因此,只需将1f
设置为移动平台FixtureDef
的摩擦字段。
如果这不起作用,请确保在创建播放器夹具def时没有将0
作为密度传递,因为运动摩擦计算为:friction=(friction coefficient)*(normal force)
然后是没有质量的物体(密度= 0),在大多数情况下(你的“大多数情况”都包括在内),会产生 no 摩擦。