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=null ) |
Dictionary | get_rest_info ( Physics2DShapeQueryParameters shape ) |
Array | intersect_point ( Vector2 point, int max_results=2147483647, Array exclude=[ ], int collision_layer=32, int type_mask=null ) |
Dictionary | intersect_ray ( Vector2 from, Vector2 to, Array exclude=[ ], int collision_layer=null, int type_mask=null ) |
Array | intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=null ) |
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¶
- Array cast_motion ( Physics2DShapeQueryParameters shape )
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.
- Array collide_shape ( Physics2DShapeQueryParameters shape, int max_results=null )
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.
- Dictionary get_rest_info ( Physics2DShapeQueryParameters shape )
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.
- Array intersect_point ( Vector2 point, int max_results=2147483647, Array exclude=[ ], int collision_layer=32, int type_mask=null )
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).
- Dictionary intersect_ray ( Vector2 from, Vector2 to, Array exclude=[ ], int collision_layer=null, int type_mask=null )
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).
- Array intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=null )
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 parameter, to reduce the processing time.