Login
Newsletter
Werbung

So, 18. Juli 2004, 00:00

Programmieren mit Looking Glass 3D

PingPongAction

Konzentrieren wir uns nun auf die PongPongAction-Klasse. Sie ist eigentlich keine Action im Sinne von LG3D, sondern ein Nachfahre von TimerTask. Sie wird ja alle 10 ms vom Timer ausgeführt. Der Konstruktor initialisiert einige interne Variablen sowie den Zufallszahlengenerator.

Die Methode run() wird vom Timer aufgerufen. Hier werden über mehrere teils komplexe Formeln die Position und die Geschwindigkeit des Balles berechnet. Die Formeln beim Aufschlag (Serve()) habe ich mit einem Maple-Worksheet (siehe weiter unten) hergeleitet.

In Serve(), das nur pro Aufschlag einmal aufgerufen wird, wird die Position der (per Zufall) ermittelten Ball-Berührung auf der gegenüberliegenden Tischseite mit der Scheibe Mark markiert.

Mark.setTranslation(TargetX,TargetY,0.0005f);

Die Höhe ist die halbe Höhe der Scheibe (1 mm), da der Mittelpunkt des Objekts eingestellt wird.

Bei jedem Durchlauf von run() wird die Position des Balles neu eingestellt.

Ball.setTranslation(PosX,PosY,PosZ);

Hier tritt ein kleiner Fehler auf, da der Ball-Durchmesser nicht berücksichtigt wird. Das hebe ich für eine Weiterentwicklung des Programmes auf. :-)

Button und ButtonAppearance

Im Rest der Datei werden noch die Klassen Button sowie ButtonAppearance definiert. Mit den soweit präsentierten Informationen, ein bißchen Grips und keiner Scheu vorm Blättern in der Online-Doku ist aber das auch leicht verständlich.

Quellcode

Der Quellcode steht natürlich zum Download bereit. Das Maple-Worksheet (Maple Version 9.01) kann natürlich auch heruntergeladen werden. Wer kein Maple sein Eigen nennt, kann auch den PDF-Ausdruck oder den komprimierten PostScript-Ausdruck herunterladen.

Zusammenfassung

In diesem Tutorial haben wir zuerst Looking Glass 3D installiert. Danach wurde die Installation einer Entwicklungs-Umgebung erklärt. Diese wurde sogleich mit den mitgelieferten LG3D Test-Programmen ausprobiert. Abschließend wurde eine eigene Anwendunge (Ping Pong) entwickelt. Alle wichtigen Teile des Source-Codes wurden erklärt.

Das Programm verträgt noch einige Verbesserungen. Eine Liste der Gedanken befindet sich in der Source-Datei .

  • Dieses Werk wurde unter der GNU Free Documentation License veröffentlicht. Das Kopieren, Verbreiten und/oder Modifizieren ist erlaubt unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder einer späteren Version, veröffentlicht von der Free Software Foundation.

    - Weitere Informationen
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung