Les Game Property du Logic Editor.
Fou Furieux du Clan
Inscrit:
25/02/2013 12:05
Post(s): 161
Hello ! Je rencontre actuellement un petit soucis avec le BGE concernant les Game Property dans le Logic Editor.

J'ai ajouté des Game Property et m'en sers un peu comme on le ferait avec des variables globales.

MAIS, je viens de me rendre compte que lorsque je change de scène, et même si l'objet est "linké", il efface toutes les propriétés pour remettre celles par défaut ! (Celles qui étaient indiquées quand j'ai lancé le jeu)

A comprendre que si j'avais set la propriété "PROUT" à 0 avant de lancer le BGE, et que par la suite je la set à 8 sur une autre scène, en changeant de scène, il s'en tamponne, et me remet 0. *arrachage de cheveux*

C'est hyper embêtant, car perso, je voyais un truc du genre : Je fais un fichier avec toutes les préférences du joueur (genre les commandes par exemple) je charge au début de la partie ce fichier pour mettre mes variables à jour (ça m'aurait permis de faire un espèce de fichier de sauvegarde quoi) et le tour est joué.

Sauf que du coup bah... bah... je peux pas ! *ARRRGGHHH*

Vous auriez pas une petite idée pour me débloquer la situation ? :P

J'aurais bien la solution du "scene overlay" mais j'ai vraiment peur qu'il ne décharge pas correctement mes scènes en passant d'une à l'autre. (et c'est franchement pas propre de faire comme ça....) Et j'ai également pensé à charger mes pref au lancement de chaque scène, sauf que, baaah, impossible d'instaurer une priorité dans les scripts oO (oui, car sinon, j'vais faire appel à des variables qui ne sont pas set correctement... enfin je sais, certains me diront que c'est possible, oui, effectivement, ça l'est, mais c'est pas opti du tout... et j'essaie déjà de gratter à tous les niveaux pour que ce soit pas trop bourrin cette histoire.).

Par avance, merci (encore une fois) à vous.

Contribution le : 21/05/2015 20:09
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
OverdOzed
Inscrit:
20/10/2012 05:53
Post(s): 485

Contribution le : 21/05/2015 21:12
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2964
Salut,
Je ne connais pas le globaldict mais je serai intéressé de savoir comment ça s'utilise en pratique, ça sert à charger/sauver l'état actuel du jeu?

Sinon pour sauver-charger la config du joueur tu peux passer par un fichier texte externe, je teste ça actuellement et ça marche plutôt bien, par contre il faut bien penser à mettre le chemin du fichier en absolut quand on teste sous Blender, et repasser en relatif quand on exporte le runtime (en effet le relatif prend racine non pas sur l'emplacement du fichier .blend mais sur l'éxécutable blender ou runtime exporté):
https://whatjaysaid.wordpress.com/2014/05/03/bge-saving-and-loading-with-pythons-built-in-file-handling/

https://whatjaysaid.wordpress.com/2014/05/18/bge-saving-configparser-data/

Contribution le : 21/05/2015 21:47
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11301
Salut,
le GlobalDict ça sert à tout ce qui est plus ou moins persistant. En gros c'est un endroit où stocker tout ce qui concerne le jeu en général, et pas une scène en particulier.

C'est vraiment très facile à utiliser.

Sans être dev, je crois que ça ressemble à une variable globale, en tout cas du point de vue du BGE.

Contribution le : 22/05/2015 06:49
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2964
Ah d'accord c'est effectivement très simple, merci pour le lien.

Contribution le : 22/05/2015 07:38
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
Fou Furieux du Clan
Inscrit:
25/02/2013 12:05
Post(s): 161
Parfait ! Et vu que je vais également avoir besoin de sauvegarder du texte dans un fichier, vous avez répondu aux deux questions que je me posais :D

Contribution le : 22/05/2015 08:16
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
Fou Furieux du Clan
Inscrit:
21/05/2014 10:29
Post(s): 261
_tibo_ : Si je me souviens bien c'est la même chose que :
bge.logic.mavar = 42

Contribution le : 22/05/2015 09:23
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
OverdOzed
Inscrit:
21/08/2013 19:12
De CH [+]
Post(s): 1558
Heuuu... non...

Lorsque tu écris mon_objet_python.ma_var = 42, c'est une propriété de mon_objet_python. Le globalDict est un dictionnaire (un mapping) référencé comme bge.logic.globalDict.

On l'utilise donc comme ça:

bge.logic.globalDict[ma_var] = 42
print(bge.logic.globalDict[ma_var])


Bien sûr, on pourrait avoir bidouillé un truc pour que les attributs ajoutés à bge.logic (un objet de type module) soient intégrés dans le globalDict. Mais ce n'est pas le cas.

Précisons encore que le globalDict:
1) peut être sauvegardé en tant que fichier séparé (format pickle, si je me souviens bien, et ça justifierait le point suivant) - c'est tout son intérêt
2) n'accepte que des objets de type natifs, typiquement:

obj = bge.logic.getCurrentController().owner

bge.logic.mon_obj = obj #ok
bge.logic.globalDict["mon_obj"] = obj #erreur


Le globalDict fournit donc une possibilité de faire des sauvegardes de paramètres, etc., et il a des correspondances directement avec les briques logiques. Mais si tout ce que l'on souhaite c'est garder un objet entre deux exécutions d'un script, on préfère en général assigner directement à un module (bge.logic. ... = ...) ou - plus pythonique - d'utiliser les scripts dans le BGE en mode Module - et donc d'y déclarer des variables globales.

Contribution le : 22/05/2015 11:37
_________________
BAddons, La Collection d'Addons de Matpi: https://github.com/qwenger/BAddons
Développeur Blender quand j'en ai le temps...

Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
Fou Furieux du Clan
Inscrit:
21/05/2014 10:29
Post(s): 261
Ok j'ai rien dit

Contribution le : 22/05/2015 12:20
Créer un fichier PDF de la contribution Imprimer


Re: Les Game Property du Logic Editor.
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2964
Citation :
par contre il faut bien penser à mettre le chemin du fichier en absolut quand on teste sous Blender, et repasser en relatif quand on exporte le runtime


Je m'auto corrige:

Pour ne pas avoir à changer le chemin en absolut quand on teste le jeu dans Blender, c'est pratique d'utiliser ça:

path = GameLogic.expandPath("//config.txt")


Ainsi le chemin relatif part du fichier blend ou du runtime et non plus de l'application elle même.

Contribution le : 23/05/2015 11:49
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[10] 99 6924 Aujourd'hui 12:07:45
moonboots 
Hors Sujet !! Sappling gen generateur d'arbres - tuto blender 1 51 Hier 13:39:46
debutant 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Version alpha disponible + discord    [1][2][3]...[66] 658 133665 Hier 10:20:51
Hook 
Python & Plugins comment accroître la vitesse par appui continu d'une touche? 1 49 Hier 07:19:33
Redstar 
Questions & Réponses objet suivant chemin en prenant la courbure du chemin 2 72 15/05 21:41:12
neonclignote 
Questions & Réponses Plusieurs object qui avance sur une ligne trajectoire 8 192 15/05 19:22:32
moonboots 
Questions & Réponses Booléen et Nurbs sphere 0 30 15/05 15:26:50
blendinfos 
Questions & Réponses Le linking ne marche pas avec mon n personnage 3 92 15/05 09:28:55
Redstar 
Moteur de jeu GameBlender et alternatives Mes participations aux gamejam :    [1][2] 10 695 14/05 22:42:31
timeman13 
Questions & Réponses [résolu] Mirror ne fonctionne plus bien 8 180 14/05 18:08:35
GFC 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[54] 534 158458 14/05 09:37:14
Redstar 
Questions & Réponses Occlusion ambiante dans 2.80 et plus avec eevee 2 231 12/05 06:40:35
xorturion 
Questions & Réponses [résolu] Transparence et Dynamic Paint pour un tag 5 729 10/05 10:51:42
CBY 
Questions & Réponses Text comme screen overlay 5 268 10/05 04:02:53
meltingman 
Questions & Réponses [non résolu] Exécuter un script à l'ouverture 0 85 09/05 21:45:09
Melodicpinpon 
Questions & Réponses Lancer un script par défaut/à l'ouverture 0 73 09/05 19:25:33
Melodicpinpon 
The Blender Clan 'tchat Benchmark EEVEE    [1][2][3]...[5] 41 9249 09/05 17:08:59
Keezty 
Questions & Réponses Garder la lumière allumée en local view, et dans toutes les collections 0 261 09/05 16:58:11
Melodicpinpon 
Python & Plugins ardoise 3D en add-on? 2 223 07/05 14:18:47
neonclignote 
Questions & Réponses [non résolu] Dynamic paint + particle 2 202 06/05 18:39:49
Jeanclaude25 

Qui est en ligne
130 utilisateur(s) en ligne (dont 95 sur Forums)

Membre(s): 0
Invité(s): 130


plus...
Nouveaux membres

Nemo
11/3/2021
qingjie 10/3/2021
Kask909 9/3/2021
marie-antoinette 7/3/2021
Bugs 7/3/2021
lolorogli75 4/3/2021
Flagiel 4/3/2021
thedeathclown 1/3/2021
Littlespoon 28/2/2021
luxperpetua 27/2/2021
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Mai 18
Anniversaire Luneo
Jui 30
Anniv des Jedi :-D
Jui 10
BUG de Lyon
plus 256 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445