按照下圖場景樹所示構造一個場景:
- 節點的名稱即爲節點類型
- 紅色方框分別對應着每個
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