Files
Princesse-Lactose-Godot/game.gd
Thomas Lavocat 74228eca7d portes: autoriser plusieurs portes
Maintenant une porte spécifie le spawn point de l'autre côté à
destination. Ca permet à un niveau d'avoir plusieurs points de sorties
et d'arrivée.
Quand la princesse meurt, elle respawn au point d'arrivée dans la carte
la dernière fois.

Pour l'instant c'est un peu pénible d'aller écire les bonnes coordonnées
dans chaque portes, je vais peut être finir par faire un truc
automatique.
2023-05-03 18:10:36 +02:00

45 lines
1.4 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
var last_spawn_point = 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)
func enter_door(destination : String, other_side_position : Vector2):
call_deferred("go_to", destination, other_side_position)
func go_to(destination : String, spawn_point):
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)
if spawn_point:
var princesse :Princess = current_scence.find_child("Princesse")
princesse.position = spawn_point
last_spawn_point = spawn_point