Разбей ящик
Часть раздела Ощущения от игры путешествия по Godot на Coddy. Урок 15 из 23.
Когда ты врезаешься в ящик, он исчезает. Сделай так, чтобы вместо этого он разлетался на щепки. burst.tscn — это одноразовый эффект CPUParticles2D с деревянными щепками, который удаляет себя после завершения.
Не добавляй эффект разлёта в качестве дочернего узла ящика. queue_free() удаляет узел вместе со всеми его дочерними узлами, поэтому эффект разлёта исчез бы вместе с ящиком. Добавь его к родительскому узлу ящика, в позицию ящика.
var burst = BURST.instantiate()
burst.position = position
get_parent().add_child(burst)
burst.emitting = true
queue_free()get_parent() — это узел над ящиком в дереве, то есть уровень. Эффект разлёта — соседний узел ящика, поэтому он остаётся после исчезновения ящика.
Задание
СреднеКогда игрок касается ящика:
- создай всплеск с помощью
BURST.instantiate(), - помести его в
positionящика, - добавь его в
get_parent()и установи для егоemittingзначениеtrue, - затем удали ящик.
Попробуйте сами
extends Area2D
const BURST = preload("res://burst.tscn")
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ощущения от игры
Потренируйтесь самостоятельно: Песочница Godot