# Physics object weight / independent gravity

0 favourites
• 3 posts
From the Asset Store
Gravity Square is a game where I aim to reach the square at the polka dot door :)
• First time using the physics behavior in a game and it's pretty weird...

How would I, say, make one object move quick and heavy like a rock, and another slow and floaty like a beach ball?

Changing the world gravity does the trick, but it's global...so what the hell?

I tried messing with the density but that seems to be the objects weight in relation to other objects. None of the other parameters did what I'm looking for.

• ## Try Construct 3

Develop games in your browser. Powerful, performant & highly capable.

Construct 3 users don't see these ads
• Well I know that it's possible (and easy) to make this with the Chipmunk Physic plugin (and some events of course). I don't know, however, how to do that with Box2D. I suppose it's possible too, but I don't have enough knowledge to confirm it. My answer seems probably useless right now, but you can keep it as a joker card. I mean, like "If, finally, it appears that it's not something realizable with Box2D, I should look for Chipmunk physic". But as I said, it's probably possible with Box2D anyway (with events too).

• The reason something like a beach ball is floaty is because of air resistance. With the physics behavior or even with most simulators in general it's like objects are moving through a vacuum, in which case nothing would be floaty.

Now the solution is to apply a force proportionate to the object's speed in the opposite direction of the object's motion. Basically we're adding a drag force.

The following would do it, just tweak 0.1 till the object has the desired floatiness.

every tick

--- apply force -0.1*distance(0,0,Self.Physics.VelocityX,Self.Physics.VelocityY) at angle angle(0,0,Self.Physics.VelocityX,Self.Physics.VelocityY)

EDIT:

or alternatively you can look at the linear damping property.

• 3 posts