[RESOLU][MY-AL] Inertie des nombres dans un jeu incrémental lors du prestige
Publié : 29 Déc 2019 19:00
Bonjour à tous,
Ce n'est pas un réel problème que j'ai, car j'ai trouvé une solution, mais je ne suis pas certain que c'est la meilleure.
Ce qu'il se passe, c'est lors de la création d'un jeu incrémental (clicker, idle toussa toussa), il y a nécessairement un équivalent du "Prestige" (tout recommencer à 0 avec un bonus).
Mais voilà, lorsque je clique sur mon bouton prestige, je réinitialise toutes les valeurs ("argent" détenu, niveau des différents items achetés, production/clic, production/s), et lorsque ma production/s atteint un certain seuil, ma fonction prestige a une inertie, c'est à dire que tout est réinitialisé, mais on commence avec une somme d'argent (proportionnelle à la production/s) alors que le code dit que ça devrait être 0 (et pourtant, je me suis pas mal pris la tête en mettant dans mon code de prestige à plusieurs endroit "argent = 0;").
La seule solution que j'ai trouvé, c'est d'appeler une coroutine après la réinitialisation du reste qui est la suivante :
En tout cas, comme ça, ça fonctionne, j'en suis très content (surtout d'y avoir pensé tout seul après 2h de prise de tête !).
Si jamais certains sauraient me dire s'il y a une meilleure solution, j'en serais ravi ! (mais encore plus fier si vous me dites que c'est LA bonne solution )
D'avance, merci de vos retours,
Bon dev !
Ce n'est pas un réel problème que j'ai, car j'ai trouvé une solution, mais je ne suis pas certain que c'est la meilleure.
Ce qu'il se passe, c'est lors de la création d'un jeu incrémental (clicker, idle toussa toussa), il y a nécessairement un équivalent du "Prestige" (tout recommencer à 0 avec un bonus).
Mais voilà, lorsque je clique sur mon bouton prestige, je réinitialise toutes les valeurs ("argent" détenu, niveau des différents items achetés, production/clic, production/s), et lorsque ma production/s atteint un certain seuil, ma fonction prestige a une inertie, c'est à dire que tout est réinitialisé, mais on commence avec une somme d'argent (proportionnelle à la production/s) alors que le code dit que ça devrait être 0 (et pourtant, je me suis pas mal pris la tête en mettant dans mon code de prestige à plusieurs endroit "argent = 0;").
La seule solution que j'ai trouvé, c'est d'appeler une coroutine après la réinitialisation du reste qui est la suivante :
Code : Tout sélectionner
IEnumerator reinit()
{
yield return new WaitForEndOfFrame();
argent = 0;
}
Si jamais certains sauraient me dire s'il y a une meilleure solution, j'en serais ravi ! (mais encore plus fier si vous me dites que c'est LA bonne solution )
D'avance, merci de vos retours,
Bon dev !