(21-02-2013, 06:29 PM)Ter Rowan a écrit : une fois pour toute en tant que développeur je définis la formule de calcul
une fois pour toute je crée un tableau indexé par le niveau qui donne le nombre de points d'xp nécessaire pour passer au niveau suivant
à chaque fois qu'un joueur gagne de l'xp, je fais le test suivant :
Code :if ( xp_bylevel [ level ] < xp )
level ++;
et baste
pratiquement pas de calcul, un peu de mémoire occupée (on parle d'un tableau de 100 entiers)
On n'a pas dit non plus qu'une formule mathématique c'était pas top. au contraire, c'est très bien. Personnellement je préfère une formule récursive car le code est limpide, (voir ci-dessous l'exemple de fibonacci) mais une seule formule fonctionne aussi bien. Ce qu'on disait pour les perf c'est qu'une fois la fonction définie il n'est pas forcément utile de la recalculer à chaque fois, notamment parce que la montée en level ne sera pas forcément le résultat d'une seule formule. Je ne connais pas de langage utilisé sur ce forum qui ne permette pas de stocker en RAM des infos. Mais de toute façon on chipote pour quelques millièmes de secondes.
Code :
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Maintenant, moi je suis pas fort en maths pour créer des formules, j'ai testé dans un grapheur ta formule exponentielle mais j'ai pas pu trouver une valeur de 'k' qui soit satisfaisante.
Est-ce que tu pourrais me faire une formule qui parte du niveau 1 à 0 XP et qui arrive au niveau 12 avec 1 000 000 XP et avec une forme sympa ?