如何让身体忽略重力(AndEngine)?

rph*_*101 3 android physics gravity andengine

我有一个精灵(有一个身体)在场景周围反弹.它需要不受重力的影响,但也能够与场景中的其他物体发生碰撞.这意味着我不能使用运动体.我试过了:

body = PhysicsFactory.createCircleBody(mPhysicsWorld, this, BodyType.DynamicBody, PhysicsFactory.createFixtureDef(.5f, .5f, .5f));
        MassData md = new MassData();
        md.mass=0;
        body.setMassData(md);
        mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(this, body, true, true));
Run Code Online (Sandbox Code Playgroud)

我的FixtureDef具有不同的值,但似乎没有任何效果.我的身体仍然落在场景的底部并坐在那里.我看到了一些关于施加相等和相反力量的东西.如果我的引力是地球默认值,这是一个可行的选择,我究竟会怎样做?或者有没有更好的方法从引力场中移除这个物体并仍然与其他动态物体相互作用?

Joh*_*Eye 8

我不确定当前版本的AndEngine包含哪个版本的Box2D,但您可以试试 body.setGravityScale(0);

如果这不起作用,你必须把它放在onUpdate中:

body.applyForce(new Vector2(0,-SensorManager.GRAVITY_EARTH), new Vector2(body.getWorldCenter()));
Run Code Online (Sandbox Code Playgroud)