Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
logiciels:blender:bge-python:accueil [2016/04/01 10:26] resonance [script02.py] |
logiciels:blender:bge-python:accueil [2018/04/06 16:27] (Version actuelle) resonance [Game Object] |
||
---|---|---|---|
Ligne 358: | Ligne 358: | ||
my_object = my_scene.objects[' | my_object = my_scene.objects[' | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Ouïe ! ===== | ||
+ | * Fichier Blender : {{: | ||
+ | {{: | ||
+ | |||
+ | |||
+ | Manipulation des collisions, des messages et des fréquences des boîtes capteurs. Les collisions font parti du groupe [[https:// | ||
+ | |||
+ | ===== Objets ===== | ||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | ==== Contrôler la fréquence des pulses ==== | ||
+ | Avec **sensor.skippedTicks**. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ==== script03.py ==== | ||
+ | |||
+ | ++++ Voir le script | | ||
+ | <code python> | ||
+ | """ | ||
+ | Manipulation des collisions, des messages et des fréquences des boîtes capteurs | ||
+ | """ | ||
+ | |||
+ | import bge | ||
+ | import random | ||
+ | |||
+ | |||
+ | # Manipuler la fréquence de la boîte capteur | ||
+ | def randFreqColors(cont): | ||
+ | obj = cont.owner | ||
+ | sensor = obj.sensors[" | ||
+ | if sensor.positive : | ||
+ | | ||
+ | # Activation du mode pulse | ||
+ | if sensor.usePosPulseMode == False: | ||
+ | sensor.usePosPulseMode = True | ||
+ | | ||
+ | # Fréquence du prochain déclenchement au hasard | ||
+ | sensor.skippedTicks = random.randrange (1,30) | ||
+ | obj.color = (random.random(), | ||
+ | | ||
+ | |||
+ | # Tests de collisions avec envois de messages | ||
+ | def sendBoom(cont): | ||
+ | obj = cont.owner | ||
+ | sensor = obj.sensors[" | ||
+ | if sensor.positive : | ||
+ | msg = "From " + obj.name | ||
+ | obj.sendMessage(" | ||
+ | | ||
+ | |||
+ | # Réception d'un message et ajout d'un objet texte | ||
+ | def receiveBoom(cont): | ||
+ | obj = cont.owner | ||
+ | sensor = obj.sensors[" | ||
+ | if sensor.positive : | ||
+ | print(" | ||
+ | | ||
+ | # Récupération du contenu du message et séparation des mots dans un tableau | ||
+ | # message[0] est le premier élément, ici " | ||
+ | # message[1] est le deuxième élément, ici le nom de la sphère | ||
+ | message = sensor.bodies[0].split(" | ||
+ | | ||
+ | # Construction du nom de l' | ||
+ | textName = obj.name + " | ||
+ | | ||
+ | # Ajout de cet objet dans la scène | ||
+ | # Arguments : nom de l' | ||
+ | obj.scene.addObject(textName, | ||
+ | | ||
+ | # On modifie ensuite le texte et la position de l' | ||
+ | objText = obj.scene.objects[textName] | ||
+ | objText.text = "Ouïe ! " + message[1] + " !" | ||
+ | objText.worldPosition.z = obj.worldPosition.z + 1 | ||
+ | | ||
+ | # On change aussi la couleur | ||
+ | obj.color = (random.randrange(10)/ | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ===== Autres exemples ===== | ||
+ | * Fichier Blender et les textures : {{: | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | Jouer une animation et changer d' | ||
+ | ==== Objets ==== | ||
+ | {{: | ||
+ | |||
+ | |||
+ | ==== script04.py ==== | ||
+ | |||
+ | ++++ Voir le script | | ||
+ | <code python> | ||
+ | """ | ||
+ | Jouer une animation et changer d' | ||
+ | """ | ||
+ | |||
+ | import bge | ||
+ | from bge import texture | ||
+ | from bge import logic | ||
+ | import random | ||
+ | |||
+ | # Jouer une animation | ||
+ | def runAnim(cont): | ||
+ | obj = cont.owner | ||
+ | sens = cont.sensors[' | ||
+ | if sens.positive: | ||
+ | # Déclenchement de l' | ||
+ | obj.playAction(" | ||
+ | |||
+ | |||
+ | # Changer d' | ||
+ | # Un dossier " | ||
+ | # dont le nom des fichiers suit la logique " | ||
+ | def randTexture(cont): | ||
+ | # Nombre d' | ||
+ | max=6 | ||
+ | obj = cont.owner | ||
+ | # Un capteur quelconque | ||
+ | sens = cont.sensors[' | ||
+ | if sens.positive: | ||
+ | # Image orginale de la texture | ||
+ | ID = texture.materialID(obj, | ||
+ | object_texture = texture.Texture(obj, | ||
+ | obj.attrDict[" | ||
+ | # Tirage d'un nombre au hasard et conversion en String pour former le nom de l' | ||
+ | n = str(random.randrange(max)) | ||
+ | # Chemin de l' | ||
+ | url = logic.expandPath("// | ||
+ | new_source = texture.ImageFFmpeg(url) | ||
+ | object_texture.source = new_source | ||
+ | object_texture.refresh(False) | ||
+ | </ | ||
+ | ++++ | ||
+ | ==== Voir aussi === | ||
+ | Des variables peuvent être accessibles depuis toutes les scènes avec [[https:// | ||
+ | |||
+ | Manipuler un actionneur " | ||
+ | |||
+ | Pour les notions de distances entre objet et d' | ||
+ | |||
+ | Pour communiquer avec d' | ||
+ |