Logic Bricks und Python

Jetzt wechseln wir in die Game Logic Ansicht.

Wir erzeugen einen neuen Text, nenne ihn InitVideo und schreiben folgendes hinein:

# Importieren der benoetigten Module
import VideoTexture
import GameLogic
# Welcher Pythen-Controller
contr = GameLogic.getCurrentController()
# Welches Objekt hat das ganze aufgerufen?
obj = contr.owner
# Gibt es ein video Attribut? (Vermeide doppelte Initialisierung)
if not hasattr(GameLogic, 'video'):
  # Bekomme Material, welches unsere Textur benutzt
  matID = VideoTexture.materialID(obj, 'MA' +obj["material"])
  # Erstellen der Videotextur
  GameLogic.video = VideoTexture.Texture(obj, matID)
  # Waehle den Pfad zum Video
  movie = GameLogic.expandPath(obj["file"])
  # Lade die Datei
  GameLogic.video.source = VideoTexture.VideoFFmpeg(movie)
  # Passe die Größe des Videos an.
  GameLogic.video.source.scale = True
  # Beginne das Video zu spielen.
  GameLogic.video.source.play()

Erzeuge einen neuen Text und nenne ihn UpdateVideo:

import GameLogic
# Ist das Video schon initialisiert?
if hasattr(GameLogic, 'video'):
  # Das Video muss jetzt jedes Frame aktualisiert werden
  # da dies nicht automatisch passiert

  GameLogic.video.refresh(True)

Das war's schon mit Python, jetzt müssen wir das Video nur noch aufrufen.

Setze die Logic Bricks wie folgt:

Außerdem brauchen wir die beiden Variablen auf die wir im init-Skript zugreifen:

material und file

material ist der Materialnahme mit dem Video und file ist der Pfad zum Video (// ist das Verzeichnis des .blend-Files)

Natürlich kannst du das Video auch anders initialisieren. (zB mit einem Near-Sensor wenn dein Charakter sich etwas nähert)

So das war's. Starte die Game Engine und drücke Leertaste.