« 1 (2) 3 4 5 ... 9 »


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Non non, l'enregistrement et le chargement se fait indépendamment de Blender, c'est du traitement de fichier.
Ça se fait aussi dans Python tout seul, mais tu peut le mettre dans un script que tu utilise dans Blender.
Dans ce dernier cas, le fichier créé sera dans le même répertoire que le .blend.

Lorsque tu sauvegardes des données dans un fichier grâce à pickle, ils sont en fait mis les uns à la suite des autres, et on les récupère de la même manière. Exemple :
import pickle

fichier = open("sauvegarde.s", "wb")

chaine = "cqfd"
dico = {"coques" : 2, "mats" : 4, "quilles" : 3}
nombre = 2568.456

pickle.dump(dico, fichier)
pickle.dump(nombre, fichier)
pickle.dump(chaine, fichier)

fichier.close()

Et losrque tu charges :
import pickle
fichier = open("sauvegarde.s", "rb")

var1 = pickle.load(fichier)
print(var1)
# affiche {"coques" : 2, "mats" : 4, "quilles" : 3}

var2 = pickle.load(fichier)
print(var2)
# affiche 2568.456

var3 = pickle.load(fichier)
print(var3)
# affiche cqfd

fichier.close()

Compris ?
Le meilleur moyen de savoir comment ça marche est tout simplement de tester

Pour l'ajout d'un élément dans le dictionnaire, ça se fait de cette manière (tu peux partir d'un dictionnaire vide) :
piece = {}
piece["Coque 1"] = "OBCoque1"
print(piece)
# affiche {"Coque 1" : "OBCoque1"}

Pas besoin de parenthèses pour une chaine (sauf si tu veux mettre un tuple), ni d'accolades (sauf pour insérer un autre dictionnaire).

Dernière chose : le nom du fichier de sauvegarde, ou son extension n'a aucune importance, du moment que tu utilises le même pour le chargement (tu peux même créer un extension à ton nom ).
De même pour les noms de variable (j'ai pris 'fichier' arbitrairement).


Contribution le : 29/10/2010 15:01
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
22/05/2010 11:23
Post(s): 176
Donc, dans le cas de Babe, c'est pour enregistrer les points de vies et argents possédé avant d'arrêter son jeu.

Et une fois qu'il éxécute son jeu, il dois faire charger les données sauvegardées précédemment en plus de sa progression dans le jeu.

C'est bien cela ?

Pour mes pièces : j'ai fais comme tu as indiqué et dans la ligne de commande, il m'affiche qu'il y a la variable pièce et elle a comme valeur l'objet coque1.

Que dois-je faire une fois que j'aurai fais de même pour toute mes pièce ?

A ce sujet, j'ai testé de faire de même avec un au type de pièce et dans la ligne de commande, il m'affiche :

{'coque 1' : 'OBcoque1'}
{'cheminee 1' : 'OBcheminée1'}

cela veux-t-il dire qu'il y a 2 éléments dans le dico ?
J'ai difficile de croire qu'es ça n'est pas le cas.
J'ai fais ainsi pour le script coque et cheminée :

piece = { }

piece ["coque 1"] = "OBcoque1"
print (piece)


piece = { }

piece ["cheminée 1"] = "OBcheminée1"
print (piece)

Contribution le : 30/10/2010 08:20
_________________
Tuer l'alien, écraser le mutant, bruler l'hérétique.
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Le piece = {} ne doit être entrée qu'une fois, cette commande permet à la fois de dire que piece est un dictionnaire et il l'initialise à 0 (càd aucun élément).

À chaque fois que tu rajoute un élément, tu dois seulement mettre piece[ETIQUETE] = VALEUR.

En gros ça donne ceci :
piece = {} # declaration du dictionnaire, qui ne contient aucun element

piece["coque 1"] = "OBCoque1"
print(piece)
# affiche {"coque 1":"OBCoque1"}

piece["cheminee 1"] = "OBCheminee1" # les accents sont a eviter
piece["canon 1"] = "OBCanon1"
print(piece)
# affiche {"coque 1":"OBCoque1", "cheminee 1":"OBCheminee1", "canon 1":"OBCanon1"}

# pour supprimer le dictionnaire (remise a "zero") :
piece = {}
print(piece)
# affcihe {}

Évidemment la commande piece = {} est donc à éviter en milieu de programme si tu veux préserver tes données...
Tu n'as besoin que de l'entrer une seule fois au début.

Avec le module pickle, tu peux "sauvegarder" ce que tu veux (pour BABe c'était de la vie et de l'argent).
Tu peux très bien sauvegarder entièrement ton dictionnaire ainsi que d'autres données, comme une position / orientation ou n'importe quoi d'autre.

J'aurais du te le donner plus tôt : le tutoriel de Gérard Swinnen, les pdf complets sont dans la rubrique "Téléchargements", vers le bas de la page.
Dans le tuto de Python3, la manipulation de fichier commence fin de page 137 du pdf (115 du livre), mais ce qui est le plus intéressant est l'utilisation du module pickle, page 143 du pdf (121 du livre) ; et les dictionnaires sont à la page 182 du pdf (160 du livre).
Je ne sais pas quelles sont les pages correspondantes pour le tuto de Python2, mais ça ne change rien car l'utilisation des dictionnaires et des fichiers est la même pour les deux versions.

Soit curieux et parcours aussi un peu le reste du tutoriel, ça pourra t'aider pour plus tard.

@+

Contribution le : 30/10/2010 10:11
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
22/05/2010 11:23
Post(s): 176
Merci pour cette généreuse offrande, j'ai déjà remarqué la partie communication réseau (qui pourrai m'être également utile).

J'ai compris la base de tes explications. Maintenant, en tenant compte de tes explications, comment dois-je faire pour que :

- Quand je cliques sur la case "acheter une coque", on ajoute cela au dictionnaire.
- Quand je cliques sur une case qui à le même rôle il faut ajouter l'objet concerné.

Je crois que il y à des commandes qui prend en compte les "sensors" et "controller".

voici une image qui illustre la situation :


Contribution le : 30/10/2010 11:28
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Comment as tu fais la sélection d'un objet ? Avec un script ou des briques logiques ?

Contribution le : 30/10/2010 13:02
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
22/05/2010 11:23
Post(s): 176
Briques logiques

Contribution le : 30/10/2010 15:52
_________________
Tuer l'alien, écraser le mutant, bruler l'hérétique.
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Ok, heu... hum... J'ai l'impression que ça va être plus compliqué que prévu...

C'est possible d'avoir un .blend du menu ?
Car il existerait bien plusieurs méthodes, mais j'ai besoin de connaître la mécanique de ton système...

Merci

Contribution le : 30/10/2010 16:48
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
22/05/2010 11:23
Post(s): 176
Demandez et vous aurez, cher ami.


Contribution le : 30/10/2010 16:56
_________________
Tuer l'alien, écraser le mutant, bruler l'hérétique.
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Quand tu clic sur [$] tu ajoutes un certain nombre à une property, qui est la somme finale de l'achat. Il faut procéder de la même manière.

Ajoute à ton plan "Argent achat" des properties de type integer, correspondant à chaque objet de vente (coque, canon, moteur...) initialisées à 0.
Pour les plans [$], relies leur contrôleur associé à un autre actuator Property (de "Argent achat") avec comme paramètre Add, property le nom de l'objet correspondant (coque, moteur...) et de valeur 1.

Toujours avec le plan "Argent achat", ajoute un sensor Always en pulse mode relié à ce bout de script (que tu modifieras pour obtenir le dictionnaire que tu souhaites) :
cont = GameLogic.getCurrentController()
own = cont.owner

achat = {"Coque 1":own["Coque 1"], "Moteur 1 ":own["Moteur 1"], "Canon 1":own["Canon 1"]}


Pour ajouter l'objet concerné, tu fais un bouton avec un actuator (parenté à un empty) addObject (et endObject s'il le faut).


Contribution le : 30/10/2010 20:12
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
22/05/2010 11:23
Post(s): 176
Si je comprend bien, je dois faire la somme du prix final (ce qui est fais) mais, en plus, je dois faire "une somme" de mes pièces achetées ?

la commande que tu as écris là est pour "mettre en mémoire" les objets ?

Et le "add objet", c'est bien pour "faire apparaitre" l'objet concerné (si c'est le cas, je le réserve pour la scène assemblage) ?

Concernant le sensor always, je ne vois pas de "pulse", il faut cocher "toujours vrai" ? ou "faux" ? ou "tap" ou "level" ?

Contribution le : 31/10/2010 10:36
_________________
Tuer l'alien, écraser le mutant, bruler l'hérétique.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 (2) 3 4 5 ... 9 »




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
Questions & Réponses rétrécir une face par rapport uniformément à son bord plutôt que par rapport à son centre. 8 3920 19/05 17:34:27
sapajou 
Questions & Réponses Labels autour de l'objet 2 83 19/05 14:33:09
Redstar 
Questions & Réponses APPEL AUX VOLONTAIRES 0 61 19/05 10:22:33
Melodicpinpon 
Questions & Réponses export 1000x trop petit 6 167 19/05 08:25:26
Redstar 
Hors Sujet !! FActualités : un petit journal humoristique    [1][2] 12 1048 18/05 02:06:25
meltingman 
Hors Sujet !! Le mal des répondeurs du forum (nouzautr's) 9 219 18/05 01:52:27
Thewada 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[57] 565 183021 17/05 20:44:39
Redstar 
Questions & Réponses Séparer un script en plusieurs add-ons 3 140 17/05 13:10:08
Redstar 
Questions & Réponses Graph editor: ne peut pas changer le handle type en free ? 9 224 17/05 12:27:31
Redstar 
Questions & Réponses [résolu] Transfer simulation cloth en boucle 5 298 17/05 12:25:56
Redstar 
Questions & Réponses [résolu] Pas d'ombre sur l'objet 8 204 16/05 19:37:11
Lylo 
Questions & Réponses Prb modélisation hache | mirror modifier 3 147 15/05 07:05:53
Rimpotche 
Questions & Réponses [non résolu] Blend4web et Blender version 2.80 ?    [1][2] 16 3198 14/05 09:50:34
blendinfos 
Questions & Réponses Je patine avec mon personnage 8 404 14/05 00:37:43
Lylo 
Questions & Réponses [résolu] rendre visible image as plane et wireframe 3 139 13/05 15:54:36
Rimpotche 
Graphisme alternatif Logiciel anatomie, bouger un écorcher ? 3 249 12/05 08:55:27
Redstar 
[WIP] et travaux terminés [terminé] Le bouï, mon ^premier moyen métrage, avec des FX et montage Blender :D 2 116477 12/05 06:42:07
Lylo 
Questions & Réponses [résolu] Rendu d'une image sans avoir de flou - cycle 4 316 11/05 10:50:27
Redstar 
Questions & Réponses Du masculin vers le féminin avec lattice 2 235 10/05 20:25:01
Melodicpinpon 
Hors Sujet !! Outils produtifs en animation avec Blender 3 - tutoriel de 15 mm 0 140 10/05 19:52:42
meltingman 

Qui est en ligne
217 utilisateur(s) en ligne (dont 163 sur Forums)

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


plus...
Nouveaux membres
Monroe10I 20/5/2022
ClaireGand 20/5/2022
JohnsonCor 20/5/2022
MerissaWol 20/5/2022
JohnnieVan 20/5/2022
JulissaRen 20/5/2022
DamarisHip 20/5/2022
FranklinAl 20/5/2022
JVCOla0457 20/5/2022
JacksonLam 20/5/2022
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 9
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 238 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