Python: Scripts python dans le Blender Game Engine

Particularité d'un script python dans le Blender Game Engine

Un script python est appelé par le controller Python dans la fenêtre Logic Editor.
Pour commencer, laisser le menu déroulant sur Script.

Le script est lancé à chaque fois que le sensor Pulse True (voir le § suivant). Le script est alors interprété puis exécuté entièrement, il faut que le script se finisse pour que le jeu continue. Le temps de l'interpréter est très court. Le jeu tourne à 60 fps, soit 15 ms par frame, le temps d'interprétation est < 1 ms.

Ce script ne peut pas être exécuté en console. Pour accéder à la bibliothèque du moteur de jeu (Blender Game Engine ou bge), le script doit être lancé dans Blender avec P.

L'import se fait avec

import bge

Le module le plus utilisé est: bge.logic

# gl come game logic, 2 lettres c'est court, donc pratique
from bge import logic as gl

Le script python est lancé par une brique logique sensor

Le script est lancé puis excécuté entièrement. Par exemple, un sensor Always lance le script en seulement toutes les 7 frames.

Comment conserver une variable toutes les frames

A la fin du script, toutes les variables de ce script sont perdues !

Seuls les attributs de bge.logic sont conservés en mémoire. Le principe

from bge import logic
logic.variable = "quelque chose"

Mais ceci n'est intéressant que si logic.variable varie !

from bge import logic
 
logic.variable =  logic.variable + 1  # soit logic.variable += 1

Ceci va provoquer une erreur à la première frame: logic.variable non défini

Il faut 2 scripts

1er script: initialisation.py qui ne sera lancé qu'une seule fois au début du jeu, et avant le 2ème script

logic.variable = 100

2ème script: le script avec

logic.variable += 1
  • scripts_python_dans_le_blender_game_engine.txt
  • Dernière modification: 2019/03/03 10:01
  • par serge