Blender - Handbuch zur Spiel-Engine: Python GameLogic
Erklärung
BearbeitenIm Folgenden sind alle Funktionen des Modules GameLogic geordnet aufgelistet. Es ist jeweils eine Beschreibung und ein Beipielcode zugeordnet. Am Ende der Aufzählung der Befehle aller Module wird ein ausführliches Beispiel für die Verwendung sein.
Importieren des Moduls GameLogic
BearbeitenMit der Importierung erhält man Zugriff auf die Befehle des Moduls. Die gängigste Methode sieht so aus:
import GameLogic as gl
Dabei ist gl eine beliebige Variable, in der das Modul abgespeichert wird. Dieses ist der "Kopf", der fast jedem Pythonprogramm in Blender vorangeht.
Die folgende Version macht alle Funktionen direkt verfügbar. Dadurch muss man nicht immer den Modulnamen vor die benutzte Funktion schreiben:
from GameLogic import *
Das sollte aber nur für die Entwicklungszeit genutzt werden, da dies allgemein als nicht "schön" angesehen wird.
Die Szene
BearbeitenMit der Einbindung der Szene hat man Zugriff auf die Objekt- und Lichtliste.
Befehl:
.getCurrentScene()
Beispielcode:
import GameLogic as gl
Szene = gl.getCurrentScene()
Objektliste
BearbeitenGibt alle Objekte der Szene in einer Liste aus. Befehl:
.getObjectList()
Beispielcode:
import GameLogic as gl
Szene = gl.getCurrentScene()
ObjListe = Szene.getObjectList()
Lichtliste
BearbeitenGibt alle Lichtobjekte der Szene in einer Liste aus. Befehl:
.getLightList()
Beispielcode:
import GameLogic as gl
Szene = gl.getCurrentScene()
LightList = Szene.getLightList()
Name der Szene
BearbeitenGibt den Namen der Szene als String aus. Befehl:
.getName()
Beispielcode:
import GameLogic as gl
Szene = gl.getCurrentScene()
Name = Szene.getName()
Der Controller
BearbeitenDer Controller ist im Prinzip die Schaltzentrale des Logiksystems in der Blender-GE. Mit im kann man Bedingungen bestimmten Aktionen zuordnen, oder komplexe Wenn-Dann Strukturen entwerfen. Auch beim Blender-GE-Programmieren mit Python spielt er eine wichtige Rolle, da man nur mit Zugriff auf einen Controller die Sensoren und Actuatoren verwalten kann.
Befehl:
.getCurrentController()
Beispielcode:
import GameLogic as gl
con = gl.getCurrentController()
Die Sensoren
BearbeitenUm auf die Sensoren Zugriff zu haben, gibt es zwei mögliche Befehle. Mit dem einen spricht man direkt einen bestimmten Sensor über seinen Namen an.
Befehl:
.getSensor("Name des Sensors")
Beispielcode:
import GameLogic as gl
con = gl.getCurrentController()
sensor = con.getSensor("sensor1")
Mit dem anderen Befehl erhält man alle Sensoren in einer Liste und kann auf diese dann per Index zugreifen.
Befehl:
.getSensors()
Beispielcode:
import GameLogic as gl
con = gl.getCurrentController()
SensorList = con.getSensors()
Sensor1 = SensorList[0]
Möchte man einen Sensor nun abfragen, ob er positiv ist, geht das so:
Befehl:
.isPositive()
Beispielcode:
import GameLogic as gl
con = gl.getCurrentController()
SensorList = con.getSensors()
Sensor1 = SensorList[0]
if Sensor1.isPositive():
print "positiv"