Разбей ящик
Часть раздела Ощущения от игры путешествия по 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() — это узел над ящиком в дереве, то есть уровень. Эффект разлёта — соседний узел ящика, поэтому он останется после исчезновения ящика.
Задание
СреднеРазбейте ящик на щепки.
- В
_on_body_enteredсоздайте всплеск с помощью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