Files
Princesse-Lactose-Godot/game.gd
Thomas Lavocat 99ae21ed87 niveau: avoir des niveaux indépendants
Il est maintenant possible d'avoir des niveaux indépendants et de
switcher de l'un à l'autre en utilisant une porte. La porte doit
indiquer le nom du niveau suivant et ensuite dans game.gd un mapping
statique permet de passer d'un niveau à l'autre.

Les limitations actuelles et la todo liste:

- La princesse spawn toujours au même endroit, elle devrait spawner par
  la porte qui l'a fait venir et bien sur dans la carte pas dans le vide
  à côté.
- On perds l'état du niveau quand on meurt, il faut que ça change dans
  le futur, c'est pas préssé ceci dit.
- Le niveau devrait s'inscire automatiquement à l'événement de mort de
  la princesse pour pas oublier de le faire à chaque fois.

En tout cas, ce chantier va permettre de travailler des niveaux
indépendament les uns des autres et paralléliser si on veut être
plusieurs à tweaker en parallèle.
2023-05-02 21:41:07 +02:00

39 lines
1.1 KiB
GDScript

class_name Game extends Node
var current_scene : Node
var level0 = preload("res://levels/level_0.tscn")
var level1 = preload("res://levels/level_1.tscn")
var scene_name = "level_0"
var current_scence
var prev_scene
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
go_to(scene_name)
func reload_current_scene() -> void:
go_to(scene_name)
func enter_door(destination):
call_deferred("go_to", destination)
func go_to(destination):
if current_scence:
remove_child(current_scence)
if destination == "level_1":
current_scence = level1.instantiate()
scene_name = "level_1"
elif destination == "level_0":
current_scence = level0.instantiate()
scene_name = "level_0"
current_scence.connect("reload_me", reload_current_scene, ConnectFlags.CONNECT_ONE_SHOT)
var doors :Node = current_scence.find_child("Doors")
if doors:
for door in doors.get_children():
door.connect("door_openned", enter_door, ConnectFlags.CONNECT_ONE_SHOT)
add_child(current_scence)