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


Re: Mode achat dans game blender
Fou Furieux du Clan
Inscrit:
02/11/2008 19:26
Post(s): 238
Exacte, c'est de cette liste que je parlais :

dans le second script, change la ligne qui fait défaut ('liste_objet = ', remplace les noms que j'ai écrit par les noms de tes properties qui correspondent).
Change aussi la ligne du premier script 'self.prix = ', pour coordonner le tout.

Reste plus qu'a tester

Contribution le : 02/11/2010 21:04
_________________
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
J'ai toujours le même problême :

En plus de la propriete "text" (qui permet de mettre du texte ou chiffre), j'ai ajouté une propriety coque1 comme nom ou avec OBcoque1. Dans les 2 cas, ça ne fonctionne pas.

Je vais te donner le fichier blend. (il est évident que j'ai laissé les pièce dans le calque 3 pour que ça fonctionne, je n'ai pas encore terminé complètement la texture des pièces et de leurs formes, donc pas de panique).

Remarque: j'ai oubliés d'ajouter ces fameuse propiety. c'est la petite fenêtre qui ressemble a un tableau. Tu le reconnaitra assez facilement.


Contribution le : 03/11/2010 11:38
_________________
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
Blender plante quand je lance le GE Un problème de fichiers qu'il ne trouve pas, apparemment...

Mais, j'ai analysé ta scène et je peux te dire qu'il faut changer le 2nd script :
cont = GameLogic.getCurrentControlleur()
own = cont.owner

achat = {}
somme_achat = 0

# l'etiquete est le nom du plan, la valeur le nom de l'objet
liste_objet = {"OBqte stock 1":"OBCoque", "OBqte stock 1.001":"OBCheminee1", "OBqte stock 1.002":None, "OBqte stock 1.003":None, "OBqte stock 1.004":None}

# on retient la liste des objets achetes et leur quantitee
for objet in liste_objet:
	OB = GameLogic.getCurrentScene().getObjectList()[objet]
	if int(OB["Text"]) == 0 or liste_objet[objet] == None:
		pass
	else:
		achat[liste_objet[objet]] = int(OB["Text"])

for objet in achat:
	somme_achat += achat[objet]*GameLogic.inventaire.prix[objet]

GameLogic.inventaire.acheter(achat)
GameLogic.inventaire.argent += -somme_achat

Bon je n'ai pas pu le tester, ça plante à chaque coup.

Pour explication, on récupère directement la quantité acheté des propriétés Text des plans qui l'affichent.

J'ai ajouté un dictionnaire pour faire le lien entre les plans et les objets : le 1er plan correspond à OBCoque1... etc.

Si tu désires changer les pièces à acheter, tu change uniquement liste_objet : ne touche pas aux étiquètes, seules les valeurs sont à changer.

'None' signifie qu'il n'y a rien, donc si tu ne veux pas qu'un bouton serve tu mets None. None n'a pas besoin de guillemets, alors que les noms des objets en ont besoin.

Si tu veux que, dans un moment du jeu, tu veux changer les objets que tu peux acheter tu peux utiliser une variable global, et la changer ensuite. Tu peux même la sauvegarder dans ton fichier de sauvegarde. Si tu veux plus d'indication, fait moi signe

Bon blend

Contribution le : 03/11/2010 19:33
_________________
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
Bonsoir

J'ai testé cela et voici ce qu'il me dit (en ligne de commande)

OB = GameLogic.getCurrentScene().getObjectList()[objet]
 ^


IndentationError : expected an indented block

Je suis quand même consterné de ne pas pouvoir résoudre une partie du problème . Je supposes que ça viendra avec le temps... mais je pourrai déja lire le document "apprendre python 3".

Contribution le : 03/11/2010 20:38
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
Ah, je m'attendais à tous sauf à ça...

Je ne suis pas sûr, mais je croix qu'il manque le "décalage" : cette ligne ne doit pas être aligné sur la gauche.

Respecte bien les marges que j'ai faites, et réessaye.


Contribution le : 03/11/2010 23: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
Je confirmes, c'était bien un problème de ligne.

Traduis, on me dit que Method GameObjectList<> est obsolète, veuillez utiliser la/les propriété(s) de(s) l'/objet(s) au lieu de ça.

confirm achat:13

C'est peut-être ce que tu attendais...

Cela veux-t-il dire qu'il faut mettre des propiétés sur les pièces ?

Pour info, je le répète peut-être mais j'ai lié le script 1 "gest pce" au plan "marché" et le 2e "confirm achat" sur le plan "argent achat". il faut peut-être mettre le 2e script sur un bouton qui "confirmera" l'achat et pas sur un "texture text".

Contribution le : 04/11/2010 11:13
_________________
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
Si c'est la seule chose qu'il te dit, alors ç'est que ça marche !!! (ou pas...)

Pour éviter qu'il affiche ce message à chaque fois, remplace
	OB = GameLogic.getCurrentScene().getObjectList()[objet]

par
	OB = GameLogic.getCurrentScene().objects[objet]

Ce n'est pas vraiment une erreur, mais c'est juste une fonction qui est peu à peu abandonnée, donc il indique qu'il ne faut plus l'utiliser (deprecated = déprécié = contraire de appréciée).

Et oui il faut lancer le script uniquement que l'achat est fait, donc sur le bouton de confirmation.

Mais par contre je pense que tu devrais remplacer le 2nd script par celui-ci :
achat = {}
somme_achat = 0


# l'etiquete est le nom du plan, la valeur le nom de l'objet
liste_objet = {"OBqte stock 1":"OBCoque", "OBqte stock 1.001":"OBCheminee1", "OBqte stock 1.002":None, "OBqte stock 1.003":None, "OBqte stock 1.004":None}


# on retient la liste des objets achetes et leur quantitee
# 'for' permet de parcourir tous les elements de la liste liste_objet
for objet in liste_objet:
	# OB est l'un des compteurs
	OB = GameLogic.getCurrentScene().objects[objet]
	
	if int(OB["Text"]) == 0 or liste_objet[objet] == None:
		# Si le compteur ne sert pas ou s'il vaut zero, on ne fait rien
		pass
	
	else:
		# on entre la valeur du compteur dans le dictionnaire achat
		achat[liste_objet[objet]] = OB["Text"]
		# remise a zero du compteur
		OB["Text"] = 0


# on parcourt la liste d'achat et on calcul le montant, en faisant quantite x prix
for objet in achat:
	somme_achat += achat[objet]*GameLogic.inventaire.prix[objet]


# on ajoute au stock les objets achetes
GameLogic.inventaire.acheter(achat)
# on depense l'argent...
GameLogic.inventaire.argent += -somme_achat

Il y a peu de changements, mise à part la suppression des 2 premières lignes qui ne servaient à rien, la remise à zéro des compteur après l'achat, et tout plein de commentaires que j'ai rajouté pour te faciliter la compréhension du script

Contribution le : 04/11/2010 18:28
_________________
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
En effet, c'est plus simple (pour le commantaires).

On ne me signale aucune erreur à présent. On est bientôt à la fin du tunnel :

- J'ai donc lié le 2e script au bouton confirmer de la case inventaire (comme condition, il faut placer le pointeur dessus et cliquer sur ce bouton) et quand je testes, j'achetes une coque et le compteur met bien 1 mais revient tout de suite à 0.

Serait-ce le fait que la fenêtre inventaire ne soit pas visible de la camera au début du jeu ?

Donc, résumons-nous : quand on achete une pièce, le nombre de sa catégories augmente. Une fois tout ces achat ont été fait, on dois avoir le total du prix et le total de pièce.

En confirment l'achat, il doit y avoir une remise à zéro du/des compteur(s) inventaire, du total à dépenser et enfin afficher l'argent qui reste.

au sujet de la soustraction, tu la fait en script je crois.
Dois-je lier le 2e script au(x) "texture text" "fonds disponible" et "achat" ? ou alors, je dois faire un "actuator" qui soustrait cela ?

Contribution le : 05/11/2010 10:50
_________________
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
Non, pas besoin, tu peux laisser le script là où il est sans rajouter des actuators.

Si tu veux faire une mise à zéro et la soustraction, tu rajoute ces lignes à la fin du 2nd script :
# Remise a zero du compteur achat
GameLogic.getCurrentScene().objects["OBArgent achat"]["Text"] = 0

# Rafraichissement du compteur argent
GameLogic.getCurrentScene().objects["OBArgent"]["Text"] = GameLogic.inventaire.argent

Le fait d'utiliser GameLogic.getCurrentScene().objects permet de récupérer n'importe quel objet dans la scène, et objet["Propriété"] permet d'accéder à ses propriétés.
Tout ce qui est nécessaire, ce sont les briques logiques pour lancer le script. Pas besoin d'en rajouter pour modifier la scène.

-> Je n'y ai pas pensé, mais veux tu bloquer l'achat si son montant est supérieur à l'argent disponible ?

Contribution le : 05/11/2010 19:16
_________________
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
Citation :
Je n'y ai pas pensé, mais veux tu bloquer l'achat si son montant est supérieur à l'argent disponible ?


Tu anticipes mes pensées. Oui, se serai parfait.

Si je ne me trompe pas, ça dois être avec la condition :

if prix achat >= prix de départ :
(je ne sais pas aller plus loin)


j'ai un souci a signaler (bug) :

- Quand je commances le jeu, le compteur de départ, mis à 10000, est a 0.

- Quand je cliques sur le bouton acheter une coque, par exemple, le compteur de coque passe de 1 puis revient directement a 0.

- Quand je ferme la catégorie coque ou que j'ouvre une autre, le compteur "argent disponible" et "achat" sont mis à 0.

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



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

Qui est en ligne
136 utilisateur(s) en ligne (dont 75 sur Forums)

Membre(s): 10
Invité(s): 126


AndersonMc, MarlonRatt, JudsonRola, DarcyDemer, Jorg089445, Darlene357, WillardYfd, WildaWalln, TraceyFite, HolleyVana, plus...
Nouveaux membres
Amado23K4 26/9/2021
AuroraDear 26/9/2021
LuisMarqua 26/9/2021
EsperanzaH 26/9/2021
LucieStuar 26/9/2021
CarmelX746 26/9/2021
NatalieBar 26/9/2021
BookerCarl 26/9/2021
MaribelMcB 26/9/2021
BelenHanes 26/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