Il y a une question que je me pose. Jusqu'a présent je ne fais que des petits jeu histoire de bien avoir la main sur le language. Donc quand j'ai un jeu où se trouve plusieur niveaux (map1,2,3,4) je gère ça d'une façon pas tres orthodoxe (je pense) et je me posais la question de savoir comment passer d'une map à l'autre sans utiliser une méthode de barbare du style:
if leve01() == True:
if level02() == True:
if level03() == True:
On peut voir que dans mon exemple je créer une condition ou j'appel mon premier niveau. Tant que ce dernier ne vaut pas True, alors le niveau est en cours (dès que le joueur a rempli la condition du level, alors level01 = True). Cette méthode est un peu barbare, et donc je me poser la question de savoir quelle autre méthode employer ce qui pourrais alléger mon code (actuellement j'ai que 3 scènes mais à la force ça va etre lourd pour le script)
- Edité par MrToine63 15 septembre 2017 à 10:11:54
Difficile de répondre correctement car la question est trop vague. Mais dans tous les cas pour éviter une telle imbrication de if, une boucle ou une itération fait toujours l'affaire :
for level in levels:
if not level():
# Game Over
break
Tu peux pas faire une liste de level et stocker juste le level en cours ?
lvl_list = [lvl1, lvl2, lvl3 ...]
current_lvl = 1 # index du level a incrementer
while foo:
load_lvl(lvl_list[current_lvl]) ....
if done:
current_lvl +=1
+1 Pour le problème est ailleurs... Il y a forcément un problème de conception, mais ne connaissant pas les tenants et les aboutissants, il est difficile de donner une solution.
Bah disons que mon jeu est tout simple. On a une piece et il y a une porte avec une clé cacher quelque part dans la pièce. Si on trouve la clé et qu'on ouvre la porte alors on passe au level suivant (d'où les conditions imbriquée dans le main.py)
Bah disons que mon jeu est tout simple. On a une piece et il y a une porte avec une clé cacher quelque part dans la pièce. Si on trouve la clé et qu'on ouvre la porte alors on passe au level suivant (d'où les conditions imbriquée dans le main.py)
Tu pourrais juste stocker le niveau actuel du joueur (un entier) plutôt que de tester s'il a validé le 1, puis le 2, puis le 3, etc... A priori si on est au niveau 3, c'est qu'on a déjà validé ceux d'avant.
Et tu peux aussi arrêter d'utiliser des fonctions numérotée. Plutôt que d'avoir des fonctions level01, level02, etc... tu peux avoir une fonction level(1) (une fonction avec un paramètre).
Blond, bouclé, toujours le sourire aux lèvres...
Quand tu créer un jeu
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...