Ver Fonte

Implemente le systeme d'ecran de gagne

DricomDragon há 11 meses atrás
pai
commit
431ce67433

+ 4 - 0
godot/composants/objets/brique/brique.gd

@@ -3,6 +3,8 @@ class_name Brique
 extends StaticBody2D
 
 
+signal eclatee
+
 const EclatementScene: PackedScene = preload("res://effets/eclatement_brique/eclatement_effet.tscn")
 const CapsuleScene: PackedScene = preload("res://composants/objets/capsule/capsule.tscn")
 const NOMBRE_DE_VIES_MAX: int = 4
@@ -40,6 +42,8 @@ func _eclater() -> void:
 	effet_eclatement.position = self.position
 	add_sibling(effet_eclatement)
 
+	eclatee.emit()
+
 
 func _liberer_capsule() -> void:
 	if Pouvoir.Type.AUCUN == pouvoir_type:

+ 0 - 1
godot/composants/objets/brique/brique.tscn

@@ -11,7 +11,6 @@ size = Vector2(30, 16)
 collision_layer = 16
 physics_material_override = ExtResource("1_exny1")
 script = ExtResource("2_gkrr0")
-pouvoir_type = null
 
 [node name="Image" type="Sprite2D" parent="."]
 texture = ExtResource("3_fmy5a")

+ 19 - 0
godot/composants/objets/brique/conteneur_briques.gd

@@ -0,0 +1,19 @@
+extends Node2D
+
+
+signal partie_gagnee
+
+@onready var nombre_briques: int = get_children().size()
+
+
+func _ready() -> void:
+	for node: Node in get_children():
+		assert(node is Brique, "Ce conteneur ne peut contenir que des briques")
+		var brique: Brique = node as Brique
+		brique.eclatee.connect(_quand_brique_eclatee)
+
+
+func _quand_brique_eclatee() -> void:
+	nombre_briques -= 1
+	if nombre_briques <= 0:
+		partie_gagnee.emit()