jeu/HUD: début de HUD pour les prouts

Maintenant 3 geauges de prout sont présentes et permettent au joueur de
savoir si il a du pet de dispo ou pas. Le joueur peut accumuler jusqu'à
trois prouts. Le temps de recharge est de 3 secondes par prout. C'est
peut être trop long.

Il faudra probablement bouger du code que j'ai mis dans game au dans le
code de niveau. Mais bon j'y réfléchirai le prochain coup.
This commit is contained in:
Thomas Lavocat
2023-05-10 23:03:14 +02:00
parent 3c6d18f746
commit 824295f63c
10 changed files with 248 additions and 20 deletions

25
game.gd
View File

@@ -1,5 +1,6 @@
class_name Game extends Node
@onready var hud := $HUD as HUD
var current_scene : Node
var level0 = preload("res://levels/level_0.tscn")
@@ -10,20 +11,25 @@ var current_scence
var prev_scene
var last_spawn_point = null
var princesse : Princess = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
go_to(scene_name, null)
func reload_current_scene() -> void:
go_to(scene_name, last_spawn_point)
hud.reset()
func enter_door(destination : String, other_side_position : Vector2):
call_deferred("go_to", destination, other_side_position)
func go_to(destination : String, spawn_point):
var old_princesse :Princess
var old_princesse :Princess = null
if current_scence:
old_princesse = current_scence.find_child("Princesse")
old_princesse.disconnect("cheese_collected", hud_load_cheese)
old_princesse.disconnect("dash_fart", hud_unload_cheese)
remove_child(current_scence)
if destination == "level_1":
@@ -40,9 +46,24 @@ func go_to(destination : String, spawn_point):
door.connect("door_openned", enter_door, ConnectFlags.CONNECT_ONE_SHOT)
add_child(current_scence)
princesse= current_scence.find_child("Princesse")
if spawn_point:
var princesse :Princess = current_scence.find_child("Princesse")
princesse.position = spawn_point
last_spawn_point = spawn_point
if old_princesse:
princesse.copy_from(old_princesse)
princesse.connect("cheese_collected", hud_load_cheese)
princesse.connect("dash_fart", hud_unload_cheese)
# vient de la princesse quand elle a ramassé un fromage
func hud_load_cheese():
Input.start_joy_vibration(0, 0, 1, 0.1)
hud.load_cheese()
# vient de la princesse quand elle ^ète
func hud_unload_cheese():
hud.dash_fart()
# quand le fromage est chargé, le jeu le signale à la princesse
func _on_hud_fart_reloaded() -> void:
princesse.reload_fart()