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


Re: Mon apprentissage Python "No Question"
OverdOzed
Inscrit:
08/04/2016 12:27
Post(s): 442
Punaise Hook,

j'avais fait le même code mais, je mettais le elif sur le même niveau que mon premier if. La console me disait qu'il y avait un problème d'indexation mais, je ne voyais pas lequel puisque j'étais resté sur le fait, qu'il devait être sur la même ligne verticale. Il suffisait de mettre toutes les conditions dans le même if.

Je te remercie beaucoup Hook.

Contribution le : 08/11/2016 13:00
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "No Question"
OverdOzed
Inscrit:
19/07/2011 20:39
De Corsica !
Post(s): 1113
Tant mieux
A savoir que tu peux aussi éviter de vérifier si les conditions sont vraies ou fausses, juste en inversant à chaque clic les variables, un exemple avec ta property A:
own["A"] = not own["A"] 
Bonne soirée et bon courage

Contribution le : 08/11/2016 20:37
_________________
Youtube
Deadsigns
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "No Question"
Fou Furieux du Clan
Inscrit:
06/05/2012 20:55
Post(s): 191
Salut,

Si ton but est juste de permuter les valeurs de A et B à chaque clic, tu peux utiliser le variable swap:
if mouseOver.positive and click.positive:
    own['A'], own['B'] = own['B'], own['A'] 


En faisant ça tu inverse A et B d'un seul coup, sans te préoccuper de leur valeur.

Contribution le : 08/11/2016 22:27
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "No Question"
OverdOzed
Inscrit:
08/04/2016 12:27
Post(s): 442
Merci Crus-T, je me rends compte que finalement, il peut y avoir plusieurs façon d'arriver à ses fin. J'ai remarqué que suivant les personnes, il y a des variations dans l'utilisation de certain sigle.

Exemple: Hook tu écris ["A"] avec des Guillemets.
Crus-T tu écris ['A'] avec des apostrophes.

J'ai testé, les deux fonctionnent. Y a t-il une règle à respecter ou bien c'est au goût de chacun ?

Ps: Sorry tiger76 je n'avais pas vu ta réponse.

Contribution le : 09/11/2016 00:20
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
21/08/2013 19:12
De CH [+]
Post(s): 1558
Questions délimiteurs de strings, les deux sont effectivement équivalents.

Perso j'utilise en général des doubles.

Python ne donne pas de conseils à ce sujet ('faudrait que je relise la PEP8), par contre Blender suggère d'utiliser en général des doubles et de réserver les simples aux constantes de l'API.

Contribution le : 09/11/2016 07:41
_________________
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: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
08/04/2016 12:27
Post(s): 442
@Matpi, je te remercie pour ces précisions. Tu confirmes ma décision de mettre des guillemets et non des apostrophes.

J'ai enfin réussi à écrire un script qui fonctionne et sans l'aide de personne, ça fait vraiment plaisir. Ce qui me permet de supprimer sept brick logic multiplier par huit tuile. Bonjour le gain de temps en mise en place et connexion

import bge

def main():

    cont = bge.logic.getCurrentController()
    own = cont.owner
    Tuile_8 = own
    
    mouseOver = cont.sensors ["mouseOver"]
    click = cont.sensors ["click"]
    
    Rad_YPos = cont.sensors ["Rad_YPos"]
    Rad_YNeg = cont.sensors ["Rad_YNeg"]
    Rad_XPos = cont.sensors ["Rad_XPos"]
    Rad_XNeg = cont.sensors ["Rad_XNeg"]
    
    if mouseOver.positive and click.positive:
        if own.sensors["Rad_YPos"].positive:
            Tuile_8.applyMovement ((0, 2, 0), True)
        
        if own.sensors["Rad_YNeg"].positive:
            Tuile_8.applyMovement ((0, -2, 0), True)
        
        if own.sensors["Rad_XPos"].positive:
            Tuile_8.applyMovement ((2, 0, 0), True)
        
        if own.sensors["Rad_XNeg"].positive:
            Tuile_8.applyMovement ((-2, 0, 0), True)

main()




Maintenant, je suis qu'un débutant, alors si vous pouviez me dire ce que vous en pensez.

Merci d'avance

Contribution le : 09/11/2016 08:08
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1574
Là, tu vois, ce serai plus cohérent de mettre les 3 derniers "if" en "elif" car je suppose que le joueur ne pourra remplir qu'une condition.

En effet, si l'un des elif est vrai, le reste est outrepassé et le cycle de vérification recommencera depuis le début. Qui plus est, ton script sera optimisé, car tu ne fera pas des vérifications inutiles puisque ta tuile se déplace que dans une seule direction à la fois.

Contribution le : 09/11/2016 09:05
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
21/08/2013 19:12
De CH [+]
Post(s): 1558
Puisque on parle de syntaxe et de style, en général on évite de mettre d'espace avant des parenthèses, crochets ou accolades ouvrants:

fonction(arguments)
iterable[index]


Sauf bien sûr si ça suit une assignation, etc:

my_set = {1, 2, 3, 4}
dico = {key1: value1, key2: value2}


etc.

Contribution le : 09/11/2016 09:13
_________________
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: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
08/04/2016 12:27
Post(s): 442
Je vous remercie tous les deux. Voici le code modifié d'après vos remarques.
import bge

def main():

    cont = bge.logic.getCurrentController()
    own = cont.owner
    Tuile_01 = own
    
    mouseOver = cont.sensors["mouseOver"]
    click = cont.sensors["click"]
    
    Rad_YPos = cont.sensors["Rad_YPos"]
    Rad_YNeg = cont.sensors["Rad_YNeg"]
    Rad_XPos = cont.sensors["Rad_XPos"]
    Rad_XNeg = cont.sensors["Rad_XNeg"]
    
    if mouseOver.positive and click.positive:
        if own.sensors["Rad_YPos"].positive:
            Tuile_01.applyMovement((0, 2, 0), True)
        
        elif own.sensors["Rad_YNeg"].positive:
            Tuile_01.applyMovement((0, -2, 0), True)
        
        elif own.sensors["Rad_XPos"].positive:
            Tuile_01.applyMovement((2, 0, 0), True)
        
        elif own.sensors["Rad_XNeg"].positive:
            Tuile_01.applyMovement((-2, 0, 0), True)

main()


J'aurai une autre question. J'ai huit tuiles qui peuvent se déplacer, dois-je faire huit scripts et attacher chacun d'entre eux à leur tuile respective ou bien faire un seul script avec huit modules ?

Contribution le : 09/11/2016 09:57
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
29/04/2007 19:11
De Nîmes...300 jours de soleil par an, inondations le reste du temps
Post(s): 3774
Tu peux, plus simplement, attacher huit fois le même script.

Tu auras besoin de plusieurs scripts différents si chaque tuile réagit différemment au clic. Je ne sais pas exactement ce que tu cherches à faire, mais il semble que tes huit tuiles aient le même comportement, il n'y a donc aucune raison de dupliquer du code. En l'état, si tu appliques ton script huit fois, seule la tuile sur laquelle tu cliques qui sera affectée (grâce au "if mouseOver.positive"). Et tu n'auras qu'un script à améliorer, étendre, nettoyer et débugger, au lieu de huit...

Contribution le : 09/11/2016 13:28
_________________
|C'est en forgeant qu'on devient forgeron, c'est en mouchant qu'on devient moucheron et c'est en sciant que Léonard devint scie.
Créer un fichier PDF de la contribution Imprimer



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




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
Python & Plugins Comment renommer "Key" ? (le chef des shapekeys)    [1][2] 15 348 Hier 22:08:47
Rimpotche 
Questions & Réponses Problème avec le nodes Color Ramp 4 129 Hier 14:51:59
Elliott42 
Python & Plugins [résolu] obtenir un résultat fixe suite au déplacement souris 1 68 Hier 14:28:07
Bibi09 
[WIP] et travaux terminés [WIP] Alpaga in love 3 75 Hier 12:55:12
moonboots 
Moteurs de rendu rendu Povray sous Blender 2.6 + trace de log 7 12066 Hier 00:25:30
MauriceRaybaud 
Questions & Réponses [non résolu] Personnage et CAT5 - VRCHAT 0 49 27/05 22:31:10
Muffet 
Questions & Réponses Conseils pour modéliser un corps 4 140 27/05 17:48:43
moonboots 
[WIP] et travaux terminés Les fonds de mes rendus 3 105 27/05 00:42:18
Bibi09 
Questions & Réponses Comment dupliquer une face autour d'un axe? 1 61 26/05 19:05:12
moonboots 
Questions & Réponses Comment faire une boucle infinie (animation) 9 143 26/05 13:00:46
3dlone 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[7] 64 6106 26/05 01:54:45
Bibi09 
Moteur de jeu GameBlender et alternatives [WIP] Jeu "Iron Man Collapsing"    [1][2][3] 27 8788 26/05 01:39:39
Bibi09 
Questions & Réponses [non résolu] Problème d'importation de svg 4 175 25/05 22:07:43
Joknox 
Questions & Réponses Disparition des Mesh.. 2 78 25/05 19:09:09
Loan20 
Questions & Réponses Animation NLA probleme origine 8 158 25/05 16:45:50
prometheusx 
Questions & Réponses alleger le poid de mon modele 5 105 25/05 16:39:51
Rimpotche 
Questions & Réponses Ajouter un raccourcis a un addon. 0 54 25/05 13:35:40
pierre-y 
Python & Plugins Pouvoir choisir l'outil actif avec python 1 89 25/05 13:20:16
pierre-y 
Questions & Réponses Exporter en FBX sur un ordi Japonais 1 143 25/05 13:01:33
tsurubaso 
Mes premières images sous Blender (débutants) Kame-House    [1][2] 15 585 25/05 08:17:56
Huildecoude 

Qui est en ligne
73 utilisateur(s) en ligne (dont 46 sur Forums)

Membre(s): 1
Invité(s): 72


ZackBundy, plus...
Nouveaux membres
PhilippDun 29/5/2020
ZackBundy 29/5/2020
RoseAngas7 29/5/2020
ErnestoDoe 29/5/2020
AudreyBrun 29/5/2020
Olen670890 29/5/2020
DianaAlfor 29/5/2020
KristeenSo 29/5/2020
SabrinaBru 29/5/2020
ReynaBurdi 29/5/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 11
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 270 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445