(débutant) Execution script python
Fou Furieux du Clan
Inscrit:
11/08/2009 18:42
De Lyon
Post(s): 109
Bonjour,

Je débute dans les BGE et dans Python (soyez indulgent !) avec quand même des bases en programmation (du C)

J'enchaine tutorial et prises de tête, et là je suis bloqué car je ne trouve pas de réponse à une question simple :
- quand est lancé exactement un script python ?

1) Mon application est on ne peut plus simple :



et mon script :



Mon objet se met à bouger si j'appuie sur le clavier : je comprend que le script se lance lors d'une première action sur le sensor. (J'affiche deux fois le mot "effectué" dans la console, il parait qu'on envoie un signal à l'appui et au relachement de la touche. Sélectionnner "Tap" n'a pas résolu mon problème)

Mon objet continuer ensuite à se déplacer sans action de ma part : Pourquoi ? Le script ne s'est effectué qu'une fois, et je n'influe que sur la position en X de mon objet.

2) Si je remplace mon sensor "Keyboard" par "Always" mon cube se déplace dès démarrage du blender game (là, je comprend). Mais je n'affiche qu'une seule fois le mot "effectué" dans la console, pourquoi ? Le script n'est pas censé être exécuté à chaque "frame logique" du blender game ?? Et mon cube continue d'avancer tout seul !


3) Je fais "la même chose" avec les briques logiques, ca marche bien. Quand je n'appuis plus sur C, mon objet cesse de se déplacer.



Toute aide est bienvenue

Contribution le : 01/07/2015 19:22
Créer un fichier PDF de la contribution Imprimer


Re: (débutant) Execution script python
OverdOzed
Inscrit:
21/06/2012 19:50
De Sud-Ouest de la France
Post(s): 385
Le script Python se lance à chaque tic logique car tu n'as pas défini de condition. Un truc rapide:

import bge
cont = bge.logic.getCurrentController()

# On récupère ton sensor
start = cont.sensors['start']

# On récupère ton actuator
move = cont.actuators['move']

# Condition
if start.positive:
    move.dLoc = [0.0, 0.5, 0.0]
    cont.activate(move)
    print('effectue')
else: cont.deactivate(move)


En fait, il suffit de rajouter une condition (le "if"), qui va tester si ton sensor est "positif" (c'est à dire que ici, la touche du clavier est appuyée). Le "else", lui, indique au script ce qu'il doit faire tant que ta touche du clavier n'est pas appuyée. Voili voilou (t’inquiète pas, moi aussi je suis un noob en Python)

Voilà, en espérant avoir aidé

Contribution le : 01/07/2015 21:45
Créer un fichier PDF de la contribution Imprimer


Re: (débutant) Execution script python
Fou Furieux du Clan
Inscrit:
11/08/2009 18:42
De Lyon
Post(s): 109
Salut,

Merci pour ta réponse

En fait je viens de comprendre que les scripts sont appellés sur transition, qu'elle soit sur front montant ou descendant. Ensuite, on peux décider de l'appliquer également sur état.

Pour m'aider à mieux comprendre, j'ai réalisé ces petits diagrammes qui manquent cruellement dans la doc blender !

----
Les scripts sont appelés sur transition.

Dans ce cas, deux sensors peuvent appeler le script. Il suffit que l’un deux émette un signal d’exécution pour que le script soit appelé (OU logique).



Le temps est divisié en « ticks de scrutation ». A chaque unité de temps (de l’ordre de la dizaine de millisecondes) l’ensemble de la logique du blender game est rafraîchie.



On peut changer les paramètres des sensors pour changer les événements ou les fréquences d’exécution des scripts.


Contribution le : 02/07/2015 19:55
Créer un fichier PDF de la contribution Imprimer


Re: (débutant) Execution script python
Fou Furieux du Clan
Inscrit:
11/08/2009 18:42
De Lyon
Post(s): 109
Résolu donc :)

Contribution le : 02/07/2015 23:28
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




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
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[11] 103 6977 Hier 21:41:38
blend74 
Questions & Réponses Rigging: Soucis au niveau du weight painting, obtenir un meilleur résultat lors d'un étirement ? 2 411 Hier 18:11:34
PounchPounch 
Questions & Réponses [non résolu] Problème Aspect du verre (Glass BSDF) 3 165 Hier 16:55:18
tulipe-rouge 
[WIP] et travaux terminés Bonjour à tous, une vanité moderde 2 55 Hier 16:37:06
tulipe-rouge 
Questions & Réponses Adaptation terrain 6 156 Hier 16:36:02
Vinke013 
Moteur de jeu GameBlender et alternatives [WIP] Godot Engine - Projet Arsenal 9 275 Hier 10:21:34
Redstar 
Questions & Réponses Texture importée déformée... HELP 2 107 Hier 09:50:36
Jreno 
Questions & Réponses Maillage et système de particules 4 103 26/09 21:00:34
yawdpwal 
Questions & Réponses Couleur de peau 1 194 26/09 07:22:23
Horemheb 
Questions & Réponses image as plane: éviter les ombres 5 135 25/09 19:07:45
blend74 
Questions & Réponses Blender et Mac, faisons le point 6 166 25/09 11:26:02
Bibi09 
Graphisme alternatif Dessiner à la tablette avec Krita : demande conseils    [1][2] 17 27811 24/09 16:49:32
blend74 
Hors Sujet !! un visage avec Blender tutoriel facile débutant 1 324 24/09 16:44:38
blend74 
Hors Sujet !! Sappling gen generateur d'arbres - tuto blender 6 1141 24/09 16:43:30
blend74 
Questions & Réponses Blender et Mac, faisons le point 0 66 24/09 09:11:50
ludo66 
Questions & Réponses Aplanir plusieurs surfaces à la fois 3 92 24/09 02:45:51
Vinke013 
Questions & Réponses message d'erreur help 0 70 23/09 12:45:05
blend74 
Graphisme alternatif les addons pour blender : bumarin etc    [1][2] 13 647 23/09 11:13:07
blend74 
[WIP] et travaux terminés Anatomie open source dans Blender    [1][2] 10 1535 23/09 00:26:54
meltingman 
Questions & Réponses Smoothing groups ou équivalent ? (3dsMax to Blender)    [1][2] 12 624 22/09 20:12:19
lucky 

Qui est en ligne
161 utilisateur(s) en ligne (dont 94 sur Forums)

Membre(s): 12
Invité(s): 149


TammyFowle, RositaCome, GloryKolb, EverettBin, GerardoSwi, CarmellaBr, DaveGresha, LillaEdmon, HeatherMor, Monty52A68, CarmelEdy, CourtneyDe, plus...
Nouveaux membres
HarveyZ84 28/9/2021
LidiaArchi 28/9/2021
TawnyaB691 28/9/2021
DavidaDown 28/9/2021
WildaWater 28/9/2021
CathernGre 28/9/2021
CliftonBla 28/9/2021
BerthaJame 28/9/2021
HuldaCheyn 28/9/2021
Floyd1218 28/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