randomisation centralisée + palier

This commit is contained in:
Mylloon 2021-04-08 19:45:53 +02:00
parent 74f635821f
commit c74f53aa4c
3 changed files with 21 additions and 16 deletions

View file

@ -1,14 +1,10 @@
extends Area2D extends Area2D
var aleatoire = RandomNumberGenerator.new() # initialisation aléatoire
func _ready(): func _ready():
global.monde += 1 # ajoute 1 au monde que le joueur découvre quand le portail de fin est généré global.monde += 1 # ajoute 1 au monde que le joueur découvre quand le portail de fin est généré
func _on_Portail_de_fin_body_entered(body): func _on_Portail_de_fin_body_entered(body):
if "Joueur" in body.name: # si la personne qui entre est un joueur if "Joueur" in body.name: # si la personne qui entre est un joueur
var nouveauMonde = "res://scenes/Monde%s.tscn" var prochainMonde = "res://scenes/Monde%s.tscn" % global.randomMap() # prochaine map
aleatoire.randomize() # aléatoire if get_tree().change_scene(prochainMonde) != OK: # go au menu
nouveauMonde = nouveauMonde % aleatoire.randi_range(1,5) # dans un écart défini
if get_tree().change_scene(nouveauMonde) != OK: # go au menu
print("Impossible de charger le jeu.") # gestion erreur print("Impossible de charger le jeu.") # gestion erreur

View file

@ -3,3 +3,21 @@ extends Node
# variable globales # variable globales
var monde var monde
var ennemisTues var ennemisTues
"""
l'idée de l'aléatoire ici est de récupérer une map aléatoirement entre les
maps déja faite
"""
func randomMap(): # fonction pour définir le prochain monde
var aleatoire = RandomNumberGenerator.new() # initialisation aléatoire
aleatoire.randomize() # génération aléatoire
if global.monde >= 10: # si au moins au 10e monde ----- mode "accomplie"
return aleatoire.randi_range(1, 10) # tous les mondes selectionnés (1 à 10)
elif global.monde >= 7: # si au moins au 7e monde ----- mode "expert"
return aleatoire.randi_range(7, 10) # seulement les mondes de 7 à 10
elif global.monde >= 5: # si au moins au 5e monde ----- mode "intermediaire"
return aleatoire.randi_range(5, 7) # seulement les mondes de 5 à 7
elif global.monde >= 3: # si au moins au 5e monde ----- mode "intermediaire"
return aleatoire.randi_range(3, 5) # seulement les mondes de 3 à 5
else: # moins de 2 mondes réussi ----- mode "débutant"
return aleatoire.randi_range(1, 3) # seulement les mondes de 1 à 3

View file

@ -1,7 +1,5 @@
extends Node2D extends Node2D
var aleatoire = RandomNumberGenerator.new() # initialisation aléatoire
func _ready(): # focus par défaut le bouton JOUER func _ready(): # focus par défaut le bouton JOUER
$MarginContainer/VBoxContainer/VBoxContainer/Jouer.grab_focus() $MarginContainer/VBoxContainer/VBoxContainer/Jouer.grab_focus()
global.monde = 0 global.monde = 0
@ -14,14 +12,7 @@ func _physics_process(_delta): # gestion de la souris
$MarginContainer/VBoxContainer/VBoxContainer/Quitter.grab_focus() $MarginContainer/VBoxContainer/VBoxContainer/Quitter.grab_focus()
func _on_Jouer_pressed(): func _on_Jouer_pressed():
var nouveauMonde = "res://scenes/Monde%s.tscn" if get_tree().change_scene("res://scenes/Monde%s.tscn" % global.randomMap()) != OK: # on charge le monde
aleatoire.randomize() # aléatoire
nouveauMonde = nouveauMonde % aleatoire.randi_range(1,5) # dans un écart défini
"""
l'idée de l'aléatoire ici est de récupérer une map aléatoirement entre les
maps déja faite
"""
if get_tree().change_scene(nouveauMonde) != OK: # on charge le monde
print("Impossible de charger le jeu.") # si le monde n'a pas chargé print("Impossible de charger le jeu.") # si le monde n'a pas chargé
func _on_Quitter_pressed(): func _on_Quitter_pressed():