按照下图场景树所示构造一个场景:
节点的名称即为节点类型 红色方框分别对应着每个CollisionShape2D
中Shape
(都是RectangleShape2D
)的范围注意:
为了避免不必要的性能消耗,RigidBody
以及RigidBody2D
默认是不开启碰撞检测的,所以需要碰撞检测的话必须做两件事:
Contact Monitor
设为true
(开启碰撞检测)
将Contact Roported
设为一个大于0的值(返回碰撞结果最大数量)
下面是"RigidBody2D"上脚本的内容
“Body.gd”
把回调方法 collision_callback
链接到RigidBody2D
的信号body_entered
上
extends RigidBody2D
func _ready():
connect("body_entered",self,"collision_callback")
func collision_callback(node):
print("我是一个:" + name + ",我撞上了一个" + node.name)
输出结果
我是一个:RigidBody2D,我撞上了一个StaticBody2D