NoUserOrg

Reto Spoerri : Game Design : Zürich

ProgrammingPanda3dTutorialErsteSchritte

Filed in: Resources.ProgrammingPanda3dTutorialErsteSchritte · Modified on : Fri, 31 Jul 09

====== Erste Schritte ======

Erstellt ein Verzeichnis: zBsp. ersteSchritte



Erstellt ein Startprogramm:

Windows (run.bat): <code type="Python"> python main.py pause </code>



OSX / Linux (run.command aka. run.sh): <code type="Python"> cd $(dirname $0) /usr/bin/python main.py </code> Die Datei ausführbar machen mit: <code type="Python"> chmod u+x run.sh </code>

manuell:

<code type="Python"> cd <verzeichniss drag und drop reinziehen> <enter> /usr/bin/python main.py <enter> </code>



Ein neues File namens „main.py“ erstellen <code type="Python"> import direct.directbase.DirectStart from pandac.PandaModules import * run() </code> Dies ist die einfachst mögliche Szene in Panda3d. Der Hintergrund ist grau, keine Objekte sind in die Szene gesetzt worden.



<code type="Python"> import direct.directbase.DirectStart </code> Startet die Panda3d Engine.



<code type="Python"> from pandac.PandaModules import * </code> Durch das Importieren von pandac.PandaModules werden die meisten benötigten Funktionen bereitgestellt.



<code type="Python"> run() </code> Started den Hauptloop von Panda3d. Während diesem Hauptloop werden mehrere Funktionen aufgerufen:

  * Bildschirm mit Hintergrundfarbe überschreiben
  * base.ctrav Kollisionsüberprüfung machen
  * Kameras rendern
  * etc.



Alternativ zu run() kann auch geschrieben werden: <code type="Python"> while True:

  taskMgr.step()

</code>



Wie ihr im letzten Beispiel seht verwendet Python keine Klammern oder ähnliches um Subfunktionen abzugrenzen. Dies wird alleine durch das einrücken definiert. Dabei werden Tabs und Spaces schnell mal von Entwicklern vermischt. TABS SIND IN PYTON CODE VERBOTEN!!! Viele Editoren wie zBsp Komodo Edit, ermöglichen das umwandeln von Tabs zu Spaces, somit kann die Tab-Taste verwendet werden. Ich empfehle die „whitespace characters“ anzeigen zu lassen um Fehler sofort zu erkennen.