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?
2 Answers
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
- 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
- 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\$ Commented Mar 16, 2011 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\$– user1430Commented Mar 16, 2011 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\$ Commented Mar 16, 2011 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\$ Commented Mar 16, 2011 at 22:25
-
\$\begingroup\$ Can you explain little bit... How to make a bird to move in the described flight patterns... \$\endgroup\$ Commented Mar 17, 2011 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.