În Godot, o scenă salvată pe disc (fișier .tscn) este un șablon reutilizabil. Pentru a crea dinamic entități în timpul jocului (inamiți care apar, gloanțe trase, monede colectabile), scena este preîncărcată și multiplicată prin instanțiere.
Tragerea unui glonț și distrugerea sigură cu queue_free()
extends Node2D
# 1. Preîncărcarea șablonului de glonț în memorie la compilare:
const SCENA_GLONT = preload("res://scene/Glont.tscn")
@onready var punct_tragere: Marker2D = $PunctTragere
func trage_glont() -> void:
# 2. Crearea unei noi instanțe din scenă:
var instanta_glont = SCENA_GLONT.instantiate() as Node2D
# 3. Configurarea proprietăților inițiale:
instanta_glont.global_position = punct_tragere.global_position
instanta_glont.rotation = global_rotation
# 4. Inserarea instanței în lumea de joc (de preferat la rădăcina nivelului curent):
get_tree().current_scene.add_child(instanta_glont)
# Distrugerea sigură a unui obiect din memorie:
func elimina_obiect() -> void:
# REGULĂ DE AUR: Nu folosiți funcții de eliberare instantanee!
# queue_free() așteaptă finalizarea cadrului curent pentru a preveni crash-urile fizice:
queue_free()
Întrebări & Exemple de Cod:
Manipularea Arborelui de Scene: get_node, $, instantiate() și queue_free()Ai o nelămurire despre utilizarea comenzii
Manipularea Arborelui de Scene: get_node, $, instantiate() și queue_free()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.