Zum Inhalt springen

Blender - Handbuch zur Spiel-Engine: Python GameLogic

Aus Wikibooks

Erklärung

[Bearbeiten]

Im 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

[Bearbeiten]

Mit 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

[Bearbeiten]

Mit der Einbindung der Szene hat man Zugriff auf die Objekt- und Lichtliste.
Befehl:

.getCurrentScene()

Beispielcode:

import GameLogic as gl

Szene = gl.getCurrentScene()

Objektliste

[Bearbeiten]

Gibt alle Objekte der Szene in einer Liste aus. Befehl:

.getObjectList()

Beispielcode:

import GameLogic as gl

Szene = gl.getCurrentScene()
ObjListe = Szene.getObjectList()

Lichtliste

[Bearbeiten]

Gibt alle Lichtobjekte der Szene in einer Liste aus. Befehl:

.getLightList()

Beispielcode:

import GameLogic as gl

Szene = gl.getCurrentScene()
LightList = Szene.getLightList()

Name der Szene

[Bearbeiten]

Gibt den Namen der Szene als String aus. Befehl:

.getName()

Beispielcode:

import GameLogic as gl

Szene = gl.getCurrentScene()
Name = Szene.getName()

Der Controller

[Bearbeiten]

Der 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

[Bearbeiten]

Um 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"