Physics2DDirectSpaceState

Inherits: Object

Category: Core

Brief Description

Direct access object to a space in the Physics2DServer.

Member Functions

Array cast_motion ( Physics2DShapeQueryParameters shape )
Array collide_shape ( Physics2DShapeQueryParameters shape, int max_results=32 )
Dictionary get_rest_info ( Physics2DShapeQueryParameters shape )
Array intersect_point ( Vector2 point, int max_results=32, Array exclude=Array(), int layer_mask=2147483647, int type_mask=15 )
Dictionary intersect_ray ( Vector2 from, Vector2 to, Array exclude=Array(), int layer_mask=2147483647, int type_mask=15 )
Array intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=32 )

Numeric Constants

  • TYPE_MASK_STATIC_BODY = 1 — Check for collisions with static bodies.
  • TYPE_MASK_KINEMATIC_BODY = 2 — Check for collisions with kinematic bodies.
  • TYPE_MASK_RIGID_BODY = 4 — Check for collisions with rigid bodies.
  • TYPE_MASK_CHARACTER_BODY = 8 — Check for collisions with rigid bodies in character mode.
  • TYPE_MASK_AREA = 16 — Check for collisions with areas.
  • TYPE_MASK_COLLISION = 15 — Check for collisions with any kind of bodies (but not areas).

Description

Direct access object to a space in the Physics2DServer. It’s used mainly to do queries against objects and areas residing in a given space.

Member Function Description

Check whether the shape can travel to a point. If it can, the method will return an array with two floats: The first is the distance the shape can move in that direction without colliding, and the second is the distance at which it will collide.

If the shape can not move, the array will be empty.

Check the intersections of a shape, given through a Physics2DShapeQueryParameters object, against the space. The resulting array contains a list of points where the shape intersects another. Like with intersect_shape, the number of returned results can be limited to save processing time.

Check the intersections of a shape, given through a Physics2DShapeQueryParameters object, against the space. If it collides with more than a shape, the nearest one is selected. The returned object is a dictionary containing the following fields:

pointo: Place where the shapes intersect.

normal: Normal of the object at the point where the shapes intersect.

shape: Shape index within the object against which the shape intersected.

metadata: Metadata of the shape against which the shape intersected. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.

collider_id: Id of the object against which the shape intersected.

collider: Object against which the shape intersected.

rid: RID of the object against which the shape intersected.

linear_velocity: The movement vector of the object the shape intersected, if it was a body. If it was an area, it is (0,0).

If the shape did not intersect anything, then an empty dictionary (dir.empty()==true) is returned instead.

Check whether a point is inside any shape. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:

shape: Shape index within the object the point is in.

metadata: Metadata of the shape the point is in. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.

collider_id: Id of the object the point is in.

collider: Object the point is inside of.

rid: RID of the object the point is in.

Additionally, the method can take an array of objects or RIDs that are to be excluded from collisions, a bitmask representing the physics layers to check in, and another bitmask for the types of objects to check (see TYPE_MASK_* constants).

Intersect a ray in a given space. The returned object is a dictionary with the following fields:

position: Place where ray is stopped.

normal: Normal of the object at the point where the ray was stopped.

shape: Shape index within the object against which the ray was stopped.

metadata: Metadata of the shape against which the ray was stopped. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.

collider_id: Id of the object against which the ray was stopped.

collider: Object against which the ray was stopped.

rid: RID of the object against which the ray was stopped.

If the ray did not intersect anything, then an empty dictionary (dir.empty()==true) is returned instead.

Additionally, the method can take an array of objects or RIDs that are to be excluded from collisions, a bitmask representing the physics layers to check in, and another bitmask for the types of objects to check (see TYPE_MASK_* constants).

Check the intersections of a shape, given through a Physics2DShapeQueryParameters object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:

shape: Shape index within the object the shape intersected.

metadata: Metadata of the shape intersected by the shape given through the Physics2DShapeQueryParameters. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.

collider_id: Id of the object the shape intersected.

collider: Object the shape intersected.

rid: RID of the object the shape intersected.

The number of intersections can be limited with the second paramater, to reduce the processing time.