Quellcode durchsuchen

Montre le nombre de balles restantes

DricomDragon vor 10 Monaten
Ursprung
Commit
34fd3a5c45

+ 22 - 0
godot/composants/interface/stock/stock.gd

@@ -0,0 +1,22 @@
+extends Control
+
+
+var taille_stock_balles: int = 42
+
+@onready var stock_balles: Label = $StockBalles
+
+
+func _ready() -> void:
+	_montrer_taille_stock_balles()
+
+
+func _montrer_taille_stock_balles() -> void:
+	if not is_node_ready():
+		return
+
+	stock_balles.text = str(taille_stock_balles)
+
+
+func _quand_nombre_balles_change(nb_balles: int) -> void:
+	taille_stock_balles = nb_balles
+	_montrer_taille_stock_balles()

+ 22 - 0
godot/composants/interface/stock/stock.tscn

@@ -0,0 +1,22 @@
+[gd_scene load_steps=2 format=3 uid="uid://ds3j5rjhys4xf"]
+
+[ext_resource type="Script" path="res://composants/interface/stock/stock.gd" id="1_ikrye"]
+
+[node name="Stock" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_ikrye")
+
+[node name="StockBalles" type="Label" parent="."]
+layout_mode = 1
+anchors_preset = 2
+anchor_top = 1.0
+anchor_bottom = 1.0
+offset_top = -23.0
+offset_right = 40.0
+grow_vertical = 0
+text = "42"

+ 7 - 1
godot/composants/objets/lanceur/lanceur.gd

@@ -2,6 +2,7 @@ extends Node2D
 
 
 signal partie_perdue
+signal nb_balles_change(int)
 
 const SceneBalle = preload("res://composants/objets/balle/balle.tscn")
 
@@ -18,10 +19,15 @@ func lancer_balle() -> void:
 		partie_perdue.emit()
 		return # on ne lance pas la balle
 
-	nombre_de_balles -= 1
+	_decrementer_nombre_de_balles()
 	var nouvelle_balle: Balle = SceneBalle.instantiate()
 	add_child.call_deferred(nouvelle_balle) # Appeler plus tard sinon Godot pas content
 
 
 func _quand_balle_detruite() -> void:
 	lancer_balle()
+
+
+func _decrementer_nombre_de_balles() -> void:
+	nombre_de_balles -= 1
+	nb_balles_change.emit(nombre_de_balles)

+ 6 - 1
godot/exec/niveaux/blob_facile.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=8 format=3 uid="uid://b11cxtgl8mwvm"]
+[gd_scene load_steps=9 format=3 uid="uid://b11cxtgl8mwvm"]
 
 [ext_resource type="PackedScene" uid="uid://cpo1b44exbbyf" path="res://composants/objets/raquette/raquette.tscn" id="1_acy65"]
 [ext_resource type="PackedScene" uid="uid://cux4pm68s7pr8" path="res://composants/objets/lanceur/lanceur.tscn" id="2_ckrqv"]
@@ -7,6 +7,7 @@
 [ext_resource type="PackedScene" uid="uid://b28d5a4be36qa" path="res://composants/objets/arene/arene.tscn" id="5_jfp2p"]
 [ext_resource type="PackedScene" uid="uid://mj0r0qodppdk" path="res://composants/interface/perdu/perdu.tscn" id="6_vwded"]
 [ext_resource type="PackedScene" uid="uid://byxtc8f6n5o3" path="res://composants/interface/gagne/gagne.tscn" id="7_3ob7h"]
+[ext_resource type="PackedScene" uid="uid://ds3j5rjhys4xf" path="res://composants/interface/stock/stock.tscn" id="8_jjbb6"]
 
 [node name="BlobFacile" type="Node2D"]
 
@@ -79,6 +80,10 @@ layout_mode = 2
 visible = false
 layout_mode = 2
 
+[node name="Stock" parent="." instance=ExtResource("8_jjbb6")]
+offset_bottom = 420.0
+
+[connection signal="nb_balles_change" from="Lanceur" to="Stock" method="_quand_nombre_balles_change"]
 [connection signal="partie_perdue" from="Lanceur" to="Message" method="show"]
 [connection signal="partie_perdue" from="Lanceur" to="Message/Perdu" method="show"]
 [connection signal="partie_gagnee" from="Briques" to="Lanceur" method="queue_free"]

+ 6 - 1
godot/exec/niveaux/carre_simple.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=8 format=3 uid="uid://cyyb8weydthjc"]
+[gd_scene load_steps=9 format=3 uid="uid://cyyb8weydthjc"]
 
 [ext_resource type="PackedScene" uid="uid://cpo1b44exbbyf" path="res://composants/objets/raquette/raquette.tscn" id="1_dbta1"]
 [ext_resource type="PackedScene" uid="uid://brd8yid3l7wgm" path="res://composants/objets/brique/brique.tscn" id="2_j0emn"]
@@ -7,6 +7,7 @@
 [ext_resource type="PackedScene" uid="uid://b28d5a4be36qa" path="res://composants/objets/arene/arene.tscn" id="4_imfht"]
 [ext_resource type="PackedScene" uid="uid://mj0r0qodppdk" path="res://composants/interface/perdu/perdu.tscn" id="5_4gti5"]
 [ext_resource type="PackedScene" uid="uid://byxtc8f6n5o3" path="res://composants/interface/gagne/gagne.tscn" id="7_16b2w"]
+[ext_resource type="PackedScene" uid="uid://ds3j5rjhys4xf" path="res://composants/interface/stock/stock.tscn" id="8_f28fe"]
 
 [node name="CarreSimple" type="Node2D"]
 
@@ -161,6 +162,10 @@ layout_mode = 2
 visible = false
 layout_mode = 2
 
+[node name="Stock" parent="." instance=ExtResource("8_f28fe")]
+offset_bottom = 420.0
+
+[connection signal="nb_balles_change" from="Lanceur" to="Stock" method="_quand_nombre_balles_change"]
 [connection signal="partie_perdue" from="Lanceur" to="Message" method="show"]
 [connection signal="partie_perdue" from="Lanceur" to="Message/Perdu" method="show"]
 [connection signal="partie_gagnee" from="Briques" to="Lanceur" method="queue_free"]

+ 6 - 1
godot/exec/niveaux/mini_centre.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=8 format=3 uid="uid://18mfasfcx418"]
+[gd_scene load_steps=9 format=3 uid="uid://18mfasfcx418"]
 
 [ext_resource type="PackedScene" uid="uid://cpo1b44exbbyf" path="res://composants/objets/raquette/raquette.tscn" id="1_ajuqp"]
 [ext_resource type="PackedScene" uid="uid://cux4pm68s7pr8" path="res://composants/objets/lanceur/lanceur.tscn" id="2_i0wfn"]
@@ -7,6 +7,7 @@
 [ext_resource type="PackedScene" uid="uid://b28d5a4be36qa" path="res://composants/objets/arene/arene.tscn" id="5_lb6y8"]
 [ext_resource type="PackedScene" uid="uid://mj0r0qodppdk" path="res://composants/interface/perdu/perdu.tscn" id="6_plfv0"]
 [ext_resource type="PackedScene" uid="uid://byxtc8f6n5o3" path="res://composants/interface/gagne/gagne.tscn" id="7_8rmw2"]
+[ext_resource type="PackedScene" uid="uid://ds3j5rjhys4xf" path="res://composants/interface/stock/stock.tscn" id="8_8ltoc"]
 
 [node name="CarreSimple" type="Node2D"]
 
@@ -40,6 +41,10 @@ layout_mode = 2
 visible = false
 layout_mode = 2
 
+[node name="Stock" parent="." instance=ExtResource("8_8ltoc")]
+offset_bottom = 420.0
+
+[connection signal="nb_balles_change" from="Lanceur" to="Stock" method="_quand_nombre_balles_change"]
 [connection signal="partie_perdue" from="Lanceur" to="Message" method="show"]
 [connection signal="partie_perdue" from="Lanceur" to="Message/Perdu" method="show"]
 [connection signal="partie_gagnee" from="Briques" to="Lanceur" method="queue_free"]