左の画像を見て分かるように、重力は gravity にbodyの質量をかけた値に等しくなります。 結論? 単純に同じ力を符号を逆にして加えればいいのです (またはそれに-1をかける) |
private Body body; private void createAntiGravityBody() { Rectangle yourEntity = new Rectangle(0, 0, 100, 100, vbo) { @Override protected void onManagedUpdate(float pSecondsElapsed) { super.onManagedUpdate(pSecondsElapsed); body.applyForce(-physicsWorld.getGravity().x * body.getMass(), -physicsWorld.getGravity().y * body.getMass(), body.getWorldCenter().x, body.getWorldCenter().y); } }; yourEntity.setColor(Color.RED); body = PhysicsFactory.createBoxBody(physicsWorld, yourEntity, BodyType.DynamicBody, fixtureDef); scene.attachChild(yourEntity); }
見て分かるように、 onManagedUpdate 内で、 applyForce メソッドを使って重力に対して反対の力を適用しています。