Menu
CoddyTech

Các vùng chạm nhau

Thuộc phần Tín hiệu và va chạm trong hành trình Godot của Coddy. Bài học 6 trên 27.

Các node của Godot có sẵn tín hiệu. Area2D có bốn tín hiệu bạn sẽ thường dùng:

  • body_entered và body_exited: một vật thể đi vào hoặc rời khỏi. Vật thể là những thứ rắn, như CharacterBody2D và StaticBody2D.
  • area_entered và area_exited: một vùng khác đi vào hoặc rời khỏi.

Một vùng không bao giờ gửi body_entered cho một vùng khác. Những ngôi sao đang rơi là các vùng, vì vậy giỏ cần area_entered:

func _ready():
	area_entered.connect(_on_star_caught)

Hàm nhận vùng vừa đi vào, vì vậy hàm cần một giá trị, chẳng hạn như _on_body_entered(body). Bạn có thể đặt tên tùy ý.

challenge icon

Thử thách

Dễ

Khiến giỏ nhận biết những ngôi sao đang rơi.

  1. Các ngôi sao là vùng, không phải vật thể. Trong _ready(), hãy kết nối area_entered thay cho body_entered.
  2. Giữ _on_star_caught làm hàm.

Nhấn Chơi: Console hiển thị Caught a star! hai lần, mỗi ngôi sao một lần. Sau đó nhấn Kiểm tra.

Tự làm thử

extends Area2D

func _ready():
	body_entered.connect(_on_star_caught)

func _on_star_caught(star):
	print("Caught a star!")

Tất cả bài học trong Tín hiệu và va chạm

Tự luyện tập: Playground Godot