physics_world_gravity(xg, yg)
Argument | Description |
---|---|
xg | The x component of the gravity vector |
yg | The y component of the gravity vector |
Returns: N/A
As with all the physics functions, physics_world_gravity will only work on an instance if the room has a physics world defined for it in the room editor or using
physics_world_create. It will then use the 0,0 defining point of the physics world to calculate the direction and strength of gravity based on the vector calculated from the xg and yg inputs. Here
are some images to illustrate...
As you can see, the xg,yg coordinates are relative to the position of 0,0 as defined for the physics world, and the gravity itself is calculated as a vector of those two components. So, the default values of 0,10 will
give you a gravity direction of down (270 degrees) with an acceleration of 10 metres per second squared. Note the metres per second squared! Like all the physics functions, gravity is calculated using metres
as a base measurement so the pixel to metre scale that you set in physics_world_create function is important here. Gravity is also cumulative on the object (but the exact amount depends on
what you have set for the function physics_fixture_set_linear_damping), meaning that in a room with a room_speed of 60, with no
damping, the instance will accelerate by 10 metres per second, every second - which, if you have a 0.1 pixel to metre scale is the same as saying it will accelerate to a speed of 100 pixels per second in 60 steps.
physics_world_gravity(-5, 0)
The above code will set gravity to be (assuming the room physics 0,0 is set to top left) to the right - 0 degrees - with an acceleration of 5 metres per second squared.