I am new to Box2D, I have set gravity to 10. How to make an object fly in space even though the gravity is 10. What are the properties I need to set to make object fly? Is there any different approach?


It sounds like you essentially want to have specific objects ignore gravity, is that correct? Since gravity is a property of the world object, it looks like the way to do this is to either

  1. Disable gravity entirely, and then manually apply gravity to every object you want to have it (ignoring the objects you don't want to be affected by gravity), or
  2. Apply a force that counteracts the force of gravity every frame to the objects you want to appear to be unaffected by gravity.

You also may be able to use a b2_kinematicBody instead of b2_dynamicBody if you don't need your "flying" objects to respond to any forces whatsoever. This may or may not be appropriate for your needs.

  • \$\begingroup\$ I don't want to ignore the gravity... I will try by applying force... \$\endgroup\$ Mar 16 '11 at 16:24
  • 1
    \$\begingroup\$ If you don't want to ignore gravity entirely, can you be more specific about what you mean by "fly?" Suffer a reducing effect from gravity? \$\endgroup\$
    – user1430
    Mar 16 '11 at 17:51
  • \$\begingroup\$ Yup it worked(By applying force to bird)... How to make bird to moving randomly in the screen. Do i need to apply force randomly and continuously? \$\endgroup\$ Mar 16 '11 at 18:11
  • \$\begingroup\$ You should probably make a few states for bird flight patterns, and randomly switch between different modes of flight patterns. Don't just use completely random forces and directions or that will not look like a bird at all. \$\endgroup\$ Mar 16 '11 at 22:25
  • \$\begingroup\$ Can you explain little bit... How to make a bird to move in the described flight patterns... \$\endgroup\$ Mar 17 '11 at 8:24

In general, the best way is to make your object dynamic and add a force to it in every frame, to the left or to the right. What I mean is that you can determine your path and calculate the force by considering the weight and gravity, which is why you apply the force to the bird. I think it's the best way, and also the most realistic.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .