I can't make body (box2d) a sprite (andengine) and at the same time apply MoveModifier to sprite which is body. If i can make just body, it works namely the sprites can collide. If I apply just MoveModifier to sprites, the sprites can move where i want. But I want to make body (they can collide) and apply MoveModifier (they can move where I want) at the same time. How can i do it? This my code just run MoveModifier not as body at the same time.

    circles[i] = new Sprite(startX, startY, textRegCircle[i]);
    body[i] = PhysicsFactory.createCircleBody(physicsWorld, circles[i], BodyType.DynamicBody, FIXTURE_DEF);
    physicsWorld.registerPhysicsConnector(new PhysicsConnector(circles[i], body[i], true, true));
            (IEntityModifier) new SequenceEntityModifier (
                        new MoveModifier(10.0f, circles[i].getX(),  circles[i].getX(), 

It is exactly as Khawar Raza says. When you connect a body with your physics engine and apply Modifier, the modifier will be active but at the same time the physics will override the change in update loop.

It depends on what kind of movement do you need to do, but your options are:

  • Body.setLinearVelocity
  • Body.applyLinearImpulse or Body.applyForce - this is a better way to set the Velocity
  • using MouseJoint.setTarget. This will make the body go to a "target" point.

I recommend checking all of them, but I bet MouseJoint is the one you want. Check out this tutorial: http://www.andengine.org/forums/tutorials/tut-box2d-mousejoint-drag-and-drop-t1156.html


I think you cannot apply move modifiers on physics bodies. If you want to move bodies, you have to use other methods like force, impulse or setting velocity.

  • \$\begingroup\$ Moving the body directly should be possible with a kinetic body. Although kinetic bodies have other downfalls. \$\endgroup\$ – bummzack Jan 21 '13 at 12:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.