Re: Programmation python dans le BGE

Posté par DaWaaaaghBabal le 6/2/2018 14:06:41
La différence, c'est que tel que tu l'as écrit, ton code crée un nouveau tableau et le remplit avec [1, 0.2, 0, 1] à chaque fois que tu mets à jour la couleur du soleil.
C'est un problème pour trois raisons.
Premièrement, initialiser un tableau, ça coûte beaucoup plus cher que lire une variable.
Deuxièmement, le code ne fait pas ce qu'il est censé faire : dans ta tête, ce code dit "le soleil prend la couleur qu'il a le matin", mais dans les faits il dit "le soleil prend une couleur matinale".
Troisièmement, c'est incompréhensible. C'est quoi, ce [1, 0.2, 0, 1] ? Pourquoi ces valeurs ? D'où ça sort ? Alors oui, pour quelque chose d'aussi simple, n'étant pas idiot, je peux deviner les réponses à ces questions... Mais pourquoi devrais-je faire l'effort ? Ne vaudrait-il pas mieux que la réponse soit évidente ?

La solution optimale, c'est de définir la variable dans un fichier de configuration : l'artiste qui règle l'éclairage ne devrait pas avoir besoin de trifouiller dans du code. Puis, à l'initialisation, là où dans mon script je définis couleur_matin, de récupérer cette configuration pour en faire une variable globale.

Par exemple :
# Au lancement du jeu
couleur_soleil_matin = lire_propriete("couleur_soleil_matin") # Je ne sais pas comment on fait ça en python ^^
#
# Ailleurs dans le code
#
if dico['heure'] >= 5 and dico['heure'] < 8: # matin
   soleil.color = couleur_soleil_matin


PS : il y aurait beaucoup de choses à dire sur le code que tu as posté, je commenterai plus tard.

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=47912&post_id=570509