Zugriff auf Module [Blender]

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
wolfp
User
Beiträge: 1
Registriert: Donnerstag 29. November 2007, 14:22

Donnerstag 29. November 2007, 15:00

Hallo zusammen

Nach einigen Jahren Blender und gelegendlichem blinzeln auf die
Gameengine Blenders komme ich nun um Python nicht herrum.
Und das ist nicht negativ gemeint.
Ich habe einige Tutorials gelesen wie zb Doc Holydays "Game Python Tutorial"
Link: http://www.neewo.de/Files/GEPython_Teil1_Basics.pdf

Im Moment geht es mir eigendlich nur darum Zugriff auf einen Controller oder Actuator in Blender sowie auch deren Funktionen zu bekommen
und diese mittels Python zu verändern.

Mit folgenden Zeilen komme ich zb an den Namen des Controllers:
import GameLogic as GL
Cont = GL.getCurrentController()
print Cont
Mit "print dir" auch an die Module insofern ich mich nicht vertue:
import GameLogic as GL
Cont = GL.getCurrentController()
print dir (Cont)
Ich habe gelesen das jedes Modul in der Gameengine
über "getOwner" angesprochen wird, also habe ich folgendes geschrieben:
import GameLogic as GL
Cont = GL.getCurrentController()
print dir (Cont.getOwner)
Das was ich aber nun in der Konsole ausgegeben bekomme
entspricht nicht dem Sensor oder Actuator:
__call__,__class__,__cmp__,__delattr__,__doc__,__getattribute__
,__hash__,__init__,__module__,__name__,__new__,__reduce__,
__reduce_ex__,__repr__,__self__,__setattr__,__str__
Ihr habt sicher schon das Problem erkannt und ich wäre wirklich dankbar
wenn mich jemand über meinen Fehler aufklärt und was ich hier evtll falsch vertanden habe.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 29. November 2007, 15:18

getOwner liefert dir das Blender-Objekt zurueck, dem der Controller gehoert.

Du willst wahrscheinlich

Code: Alles auswählen

print dir (Cont.getOwner())
(man beachte die zuaetzlichen Klammern!), dann bekommst du die Attribute des Blender-Objekts. (Ohne die Klammern bekommst du die Attribute der Funktion getOwner, nicht von deren Rueckgabewert).

PS: Ich hatte mal einige einfache, recht gut kommentierte Beispiele fuer die Game-Engine erstellt, sie finden sich im Anhang dieser Mail, vlt. kannst du die ja brauchen.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten