« 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 Adaptation terrain 1 48 Aujourd'hui 07:00:16
Rimpotche 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[10] 93 6551 Hier 19:56:45
blend74 
Questions & Réponses Blender et Mac, faisons le point 5 98 Hier 19:17:10
ludo66 
Questions & Réponses image as plane: éviter les ombres 4 81 Hier 17:01:34
blend74 
Graphisme alternatif Dessiner à la tablette avec Krita : demande conseils    [1][2] 17 27691 Hier 16:49:32
blend74 
Hors Sujet !! un visage avec Blender tutoriel facile débutant 1 282 Hier 16:44:38
blend74 
Hors Sujet !! Sappling gen generateur d'arbres - tuto blender 6 1085 Hier 16:43:30
blend74 
Moteur de jeu GameBlender et alternatives [WIP] Godot Engine - Projet Arsenal 8 201 Hier 12:30:30
Redstar 
Questions & Réponses Blender et Mac, faisons le point 0 42 Hier 09:11:50
ludo66 
Questions & Réponses Aplanir plusieurs surfaces à la fois 3 49 Hier 02:45:51
Vinke013 
Questions & Réponses Texture importée déformée... HELP 0 43 23/09 13:47:10
Jreno 
Questions & Réponses message d'erreur help 0 38 23/09 12:45:05
blend74 
Graphisme alternatif les addons pour blender : bumarin etc    [1][2] 13 545 23/09 11:13:07
blend74 
[WIP] et travaux terminés Anatomie open source dans Blender    [1][2] 10 1430 23/09 00:26:54
meltingman 
Questions & Réponses Smoothing groups ou équivalent ? (3dsMax to Blender)    [1][2] 12 332 22/09 20:12:19
lucky 
Questions & Réponses [non résolu] Os et FBX 2 78 22/09 14:50:56
zeromeetsinfinity 
Questions & Réponses [non résolu] Problème Aspect du verre (Glass BSDF) 1 106 20/09 19:50:51
Miaunik 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[40] 397 39688 17/09 17:56:10
Bibi09 
Questions & Réponses [non résolu] IES Lights 4 210 17/09 16:24:14
jcnouveau 
Questions & Réponses Couleur de peau 0 127 17/09 14:31:20
Carne 

Qui est en ligne
139 utilisateur(s) en ligne (dont 74 sur Forums)

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


LazaroLear, ToshaMiley, Elida23H4, CaroleFouc, LazaroSpil, ElizbethPa, DelorasWes, LeolaToler, JorjaDlo6, plus...
Nouveaux membres
Darren55I 25/9/2021
Susanne281 25/9/2021
WendiRasch 25/9/2021
BarneyVaug 25/9/2021
AngleaLeav 25/9/2021
WilfredoBr 25/9/2021
LuzBuw5199 25/9/2021
Tonja08K7 25/9/2021
SterlingRa 25/9/2021
JacelynCha 25/9/2021
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Oct 8
Anniversaire du Grand Mechant Fadge
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
plus 248 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