PhysicsShapeQueryParameters2D
继承: RefCounted
< Object
Provides parameters for PhysicsDirectSpaceState2D.intersect_shape
.
描述
By changing various properties of this object, such as the shape, you can configure the parameters for PhysicsDirectSpaceState2D.intersect_shape
.
属性
bool | collide_with_areas |
bool | collide_with_bodies |
int | collision_mask |
Array RID | exclude |
float | margin |
Vector2 | motion |
Resource | shape |
RID | shape_rid |
Transform2D | transform |
属性说明
bool
collide_with_areas = false
If true
, the query will take Area2D
s into account.
bool
collide_with_bodies = true
If true
, the query will take PhysicsBody2D
s into account.
int
collision_mask = 4294967295
The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information.
The list of object RID
s that will be excluded from collisions. Use CollisionObject2D.get_rid
to get the RID
associated with a CollisionObject2D
-derived node.
Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again.
float
margin = 0.0
The collision margin for the shape.
Vector2
motion = Vector2(0, 0)
The motion of the shape being queried for.
Resource
shape
The Shape2D
that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over shape_rid
.
RID
shape_rid = RID()
The queried shape's RID
that will be used for collision/intersection queries. Use this over shape
if you want to optimize for performance using the Servers API:
var shape_rid = PhysicsServer2D.circle_shape_create()
var radius = 64
PhysicsServer2D.shape_set_data(shape_rid, radius)
var params = PhysicsShapeQueryParameters2D.new()
params.shape_rid = shape_rid
# Execute physics queries here...
# Release the shape when done with physics queries.
PhysicsServer2D.free_rid(shape_rid)
RID shapeRid = PhysicsServer2D.CircleShapeCreate();
int radius = 64;
PhysicsServer2D.ShapeSetData(shapeRid, radius);
var params = new PhysicsShapeQueryParameters2D();
params.ShapeRid = shapeRid;
// Execute physics queries here...
// Release the shape when done with physics queries.
PhysicsServer2D.FreeRid(shapeRid);
Transform2D
transform = Transform2D(1, 0, 0, 1, 0, 0)
void
set_transform ( value:Transform2D
)Transform2D
get_transform ( )
The queried shape's transform matrix.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。