Punkt za rurę
Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 27 z 36.
Każda minięta rura to jeden punkt. Rura ma element podrzędny Area2D o nazwie Gap — wąski pasek za otworem. Latający obiekt dotyka go dopiero po przeleceniu przez otwór, więc wtedy zdobywasz punkt.
W pliku pipe.gd połącz sygnał elementu podrzędnego za pomocą $Gap i wyemituj sygnał scored:
$Gap.body_entered.connect(_on_gap_body_entered)
func _on_gap_body_entered(body):
scored.emit()W pliku main.gd połącz sygnał scored każdej nowej rury. Dodaj 1 do score i wyświetl wynik w $HUD/Score. str(score) zamienia liczbę na tekst. Na początku wyświetl 0.
Wyzwanie
ŚredniZdobywaj punkt za każdą ominiętą rurę.
- W
pipe.gddodajsignal scored, połącz$Gap.body_enteredi emitujscored, gdy obiekt wleci w szczelinę. - W
main.gddodajvar score = 0i na początku wyświetl0w$HUD/Score. - Połącz sygnał
scoredkażdej rury z funkcją, która dodaje jeden punkt i wyświetla wynik.
Naciśnij „Graj” i przeleć przez szczelinę: wynik wyniesie 1. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends Area2D
signal hit
const SPEED = 160
func _ready():
body_entered.connect(_on_body_entered)
func _physics_process(delta):
position.x -= SPEED * delta
if position.x < -60:
queue_free()
func _on_body_entered(body):
hit.emit()
Wszystkie lekcje w sekcji Projekty
3Projekt: Latający Ptaszek
Grawitacja ptaszkaMachanie skrzydłamiPoćwicz samodzielnie: Edytor online Godot