Menu
CoddyTech
flag Ru iconРусскийdown icon

Засчитай трубу

Часть раздела Проекты путешествия по Godot на Coddy. Урок 24 из 33.

Каждая пройденная труба приносит одно очко. У трубы есть дочерний узел Area2D под названием Gap — тонкая полоска за проёмом. Персонаж касается её только после того, как пролетит через проём, и тогда начисляется очко.

В pipe.gd подключи сигнал дочернего узла через $Gap и вызови scored:

$Gap.body_entered.connect(_on_gap_body_entered)

func _on_gap_body_entered(body):
	scored.emit()

В main.gd подключи сигнал scored каждой новой трубы. Увеличь score на единицу и покажи его в $HUD/Score. str(score) преобразует число в текст. В начале покажи 0.

challenge icon

Задание

Средне
  1. В pipe.gd добавь signal scored. Подключи $Gap.body_entered и вызывай scored, когда тело входит в проём.
  2. В main.gd добавь var score = 0 и при запуске отобрази 0 в $HUD/Score.
  3. Подключи scored каждой трубы к функции, которая увеличивает счёт на единицу и отображает новый результат.

Попробуйте сами

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()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Проекты

Потренируйтесь самостоятельно: Песочница Godot