Benutzer:Moerdn/ Properties - Eigenschaften von Game Objekten

Properties sind Objekteigenschaften, die der GameEngine Programmierer beliebigen Objekten in der Szene geben kann. Aus Java Sicht könnte man diese Eigenschaften auch als Membervariablen bezeichnen. Sie lassen sich nicht nur über die GUI in Blender mittels add Property hinzufügen, sonder auch per Python Script. Der Property Zugriff hat sich im vergleich zu älteren Blender Versionen stark geändert und ist nun wesentlich vereinfacht worden.

Anlegen und Schreiben einer neuen Property Bearbeiten

Zum Erzeugen und Schreiben einer Property wird der [] (Indexoperator) verwendet. In den eckigen Klammer wird der Name der Property als String geschrieben oder eine String variable verwendet. Diesem Ausdruck wird mit dem = Zuweisungsoperator ein beliebiges Objekt zugewiesen.

# Beispiel 1.1. Anlegen von verschiedenen Properties. 

obj = con.owner # man benötigt ein beliebiges GameObject

obj['string_prop'] = 'wert von string prop'

ergebnis = 3123 + 12312
obj['ergebnis_prop'] = ergebnis # Dies ist eine Integer Property

obj['liste'] = [1, 2, 'a', 'b', 4.5] # Eine Liste als Property

#END 1.2.


Auslesen einer Property Bearbeiten

Das Auslesen ist ebenso einfach wie das Erzeugen. Der [] (Indexoperator) wird auch hier verwendet. Die Property muss in diesem Fall auf der rechten Seite einer Zuweisen stehen, kann aber auch in beliebigen Ausdrücken verwendet werden.

# Beispiel 1.2. Auslesen von verschiedenen Properties. 

obj = con.owner # man benötigt ein beliebiges GameObject

print(obj['string_prop'])  # gibt den Wert von 'string_prop' aus

zwischen_ergebnis = obj['ergebnis'] # Zuweiesung

for element in obj['liste']: # Verwendung einer Listen Property in einer for Schleife
    print(element)

#END 1.2.


Iterieren über alle Properties Bearbeiten

Wenn man alle Properties eines Objektes abarbeiten möchte, kann man dies bequem in einer Schleife tun.

# Beispiel 1.3. Alle Properties abarbeiten

obj = con.owner # man benötigt ein beliebiges GameObject

# Alle Properties mit Namen und zugehoerigen Werten ausgeben
for prop_name in obj.getPropertyNames():
    print(prop_name, str(obj[prop_name]))

#END 1.3.


Prüfen ob eine Property vorhanden ist Bearbeiten

Mit dem Schlüsselwort in ist es in Python sehr einfach möglich zu überprüfen, ob es eine bestimmte Property gibt oder nicht.

# Beispiel 1.4. Pruefen ob eine Property vorhanden ist

obj = con.owner # man benötigt ein beliebiges GameObject

# testen ob es die Property 'Live' gibt
if not 'Live' in obj: 
    # wenn nicht, anlegen
    obj['Live'] = 100.0

print(obj['Live'])

#END 1.4.


zurück zu Benutzer:Moerdn/ GameLogic