(1) 2 3 4 ... 23 »


Mon apprentissage Python TunnelRunner "No Question"
OverdOzed
Inscrit:
08/04/2016 12:27
Post(s): 442
Salut à tous,

Comme certains le savent, je me suis lancé dans l'apprentissage de python.

Je rencontre un problème avec ce script:
import bge

def main():

    cont = bge.logic.getCurrentController()
    own = cont.owner

    mouseOver = cont.sensors ["mouseOver"]
    click = cont.sensors ["click"]
    
    if mouseOver.positive and click.positive:
        own ['A'] = True
        own ['B'] = False
    
    elif own ['A'] == True:
        if mouseOver.positive and click.positive:
            own ['A'] = False
            own ['B'] = True  
        
main()


Au départ 'A' est False et 'B' est True.

Quand je clique sur le plan qui exécute le script, j'ai bien mes deux propertys qui changent mais, quand je clique à nouveau dessus, je n'ai pas de changement dans mes propertys. J'ai regardé la console mais, elle n'affiche rien. J'ai testé différente chose sans résultat. Pour le coup, là ! Je ne la vois pas la raison de cet échec.

Si quelqu'un pouvait seulement me dire pourquoi ça ne fonctionne pas. Je ne veux pas la solution, seulement la raison de l'échec, je rechercherais la solution de moi-même.

Merci d'avance

Contribution le : 07/11/2016 16:32
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
Dans l'état actuel des choses, si tu cliques la seconde fois, il va outrepasser le "elif". Pourquoi ? Parce que c'est une question de priorité.

Si la condition 1 ne marche pas, passer à la 2... du coup, si la condition 1 est ok, terminer le cycle de vérification.

Voilà pourquoi ça ne fonctionne pas comme tu l'as prévu.

Une petite astuce:
Pour exploiter la console dans cette situation, une bonne idée serai de faire un print. Ça te permet de vérifier ta fonction.

Contribution le : 07/11/2016 16:46
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 te remercie Redstar et oui le print, il faut que je prenne l'habitude de l'écrire.

Contribution le : 07/11/2016 16:51
Créer un fichier PDF de la contribution Imprimer


Re: Mon apprentissage Python "No Question"
OverdOzed
Inscrit:
02/01/2011 12:31
Post(s): 479
Salut,

Redstar t'as donné la réponse je pense donc as que je rajoute quelque chose la-dessus.
Par contre, quelques petits conseils au niveau algorithmique:
- elif own ['A'] == True:
Tu peux tout simplement enlever le == True. EN effet, une conditionnelle vérifie le booléen qui vaut True ou False
Donc si own['A'] vaut True alors tu rentre dans la conditionnelle, sinon non.
Tu remarquera que tu l'as déjà utilisé :
mouseOver.positive and click.positive
Cela se traduit par : si mouseOver.positive est vrai et click.positive est vrai alors je rentre dans la conditionnelle.
- Juste une petite question : Est-ce que dans ton code si own[A'] est vrai alors own['B'] est faux et inversement ?
Si oui tu n'as as besoin de deux variables, vu que l'une est le contraire de l'autre.

Voilà j'espère que j'ai pas écrit un trop gros pavé ahah

En tout cas, bon courage pour ton aprentissage

Contribution le : 07/11/2016 18:42
_________________
Anciennement tiger76, maintenant c'est rikoo
Mais attention, rikoo à l'anglaise soit rikou :D
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
Citation :

tiger76 a écrit:
- elif own ['A'] == True:
Tu peux tout simplement enlever le == True. EN effet, une conditionnelle vérifie le booléen qui vaut True ou False
Donc si own['A'] vaut True alors tu rentre dans la conditionnelle, sinon non.

Je ne le savais pas, merci.
Citation :

tiger76 a écrit:
En tout cas, bon courage pour ton apprentissage

Merci, je galère grave et plus je relis depuis le début et moins je comprends. Tout s'embrouille, je vais arrêter là pour aujourd'hui, je verrais demain si je trouve la solution.

Contribution le : 08/11/2016 00:42
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
Salut à tous,

J'ai beau chercher je ne trouve pas. Une bonne âme pour me dire comment faire ?

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


Re: Mon apprentissage Python "No Question"
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1574
Citation :

J'ai beau chercher je ne trouve pas. Une bonne âme pour me dire comment faire ?


Je ne comprends pas ta question ni sur quoi.

Contribution le : 08/11/2016 10:39
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
Salut Redstar, toujours pour ma permutation. J'arrive à faire passer A en true et B en false quand je clique sur ma plane mais, pas à rechanger leur valeur quand je clique une nouvelle fois dessus. J'ai essayé en incluant tout dans une même fonction, en faisant plusieurs fonctions et ensuite la commande, enfin bref beaucoup d'essai mais, point de réussite. Le pire c'est que quand j'écris une nouvelle forme, pour moi c'est clair et ça doit fonctionner mais, il semblerait que python et moi on ne raisonne pas pareil. Soit j'ai loupé un truc ou bien, je crois avoir compris mais, il n'en ait rien.

Je vais continuer à chercher mais, j'avoue que je ne sais plus trop quoi essayer pour que ça fonctionne, en clair je ne suis pas à côté de la route, je suis carrément dans le fossé

Contribution le : 08/11/2016 10:53
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): 1116
Salut, reposte ton code, tu as changé la structure avec le elif comme dans le code du premier post ?
Si j'ai bien compris, tu veux activer/désactiver en cliquant dessus, enfin en inversant deux variables, moi je ferais comme ça:

import bge

def main():

	cont = bge.logic.getCurrentController()
	own = cont.owner

	mouseOver = cont.sensors["mouseOver"]
	click = cont.sensors["click"]

	if mouseOver.positive and click.positive:

		if own["A"]:
			own["A"]=False
			own["B"]=True
		elif own["B"]:
			own["B"]=False
			own["A"]=True
main()


Assure toi bien d'avoir mis le sensor click en Tap aussi.

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


Re: Mon apprentissage Python "New Question"
OverdOzed
Inscrit:
02/01/2011 12:31
Post(s): 479
C'est bon j'ai trouvé, il m'a fallu du tems x)

En fait,
Premièrement tu vérifie qu'il y a un clique, et t'assigne vrai à A et faux à B
Cela marche au premier clique.
Au deuxième clique,tu rentre dans ta première condition le if vu qu'il y a un clique
Mais tu n'iras jamais dans le elif, car cela signifie sinon si.
En résumé, tu change la valeur de A puis tu la remet encore et encore et à vrai à chaque clique.
Je te conseillerai d'inverser ta conditionnelle. C'est à dire vérifier que A est vrai puis regarder si il y a un clique.

A++ et bon blend

Contribution le : 08/11/2016 12:31
_________________
Anciennement tiger76, maintenant c'est rikoo
Mais attention, rikoo à l'anglaise soit rikou :D
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
(1) 2 3 4 ... 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
Questions & Réponses [non résolu] Problème IK : pied qui tourne au lieu d'être fixé au sol 3 42 Aujourd'hui 17:23:57
Horemheb 
Questions & Réponses appliquer une animation NLA 1 15 Aujourd'hui 16:16:13
prometheusx 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Date de sortie 1er juillet 2020    [1][2][3]...[51] 504 87034 Aujourd'hui 13:08:43
Hook 
Questions & Réponses affichage progressif bevel de courbe 5 92 Aujourd'hui 10:25:23
jlf 
The Blender Clan 'tchat Free addon Modélisation procédurale par nodes 1 43 Aujourd'hui 08:47:52
WinZs 
[WIP] et travaux terminés [WIP] Alpaga in love 7 150 Aujourd'hui 00:20:08
Bibi09 
Questions & Réponses Problème de rendu (débutant) 1 41 Hier 16:16:59
Rimpotche 
Questions & Réponses Grosse différence d'éclairage sur le rendu final VS le mode Rendered 9 131 29/05 21:42:20
Crocodile_13 
Questions & Réponses Problème avec le nodes Color Ramp 5 174 29/05 20:59:01
JaAlVir657 
Python & Plugins Comment renommer "Key" ? (le chef des shapekeys)    [1][2] 18 456 29/05 19:06:29
lucky 
Questions & Réponses [résolu] théorie lowpoly / highpoly 3 65 29/05 17:53:57
moonboots 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[7] 65 6320 29/05 16:40:53
Bibi09 
[WIP] et travaux terminés Les fonds de mes rendus 4 155 29/05 14:05:18
Crocodile_13 
Python & Plugins [résolu] obtenir un résultat fixe suite au déplacement souris 1 106 28/05 14:28:07
Bibi09 
Moteurs de rendu rendu Povray sous Blender 2.6 + trace de log 7 12113 28/05 00:25:30
MauriceRaybaud 
Questions & Réponses [non résolu] Personnage et CAT5 - VRCHAT 0 80 27/05 22:31:10
Muffet 
Questions & Réponses Conseils pour modéliser un corps 4 177 27/05 17:48:43
moonboots 
Questions & Réponses Comment dupliquer une face autour d'un axe? 1 86 26/05 19:05:12
moonboots 
Questions & Réponses Comment faire une boucle infinie (animation) 9 176 26/05 13:00:46
3dlone 
Moteur de jeu GameBlender et alternatives [WIP] Jeu "Iron Man Collapsing"    [1][2][3] 27 8866 26/05 01:39:39
Bibi09 

Qui est en ligne
91 utilisateur(s) en ligne (dont 52 sur Forums)

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


plus...
Nouveaux membres
MaryanneB8 31/5/2020
Samux 30/5/2020
titisteph 29/5/2020
Muffet 27/5/2020
MadK 26/5/2020
Osziy_ 26/5/2020
Elliott42 25/5/2020
Ben3D 25/5/2020

Octopus
24/5/2020
aguqaf 23/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