Login
Newsletter
Werbung

So, 18. Juli 2004, 00:00

Programmieren mit Looking Glass 3D

Das Hauptprogramm

void main()

Die statische main()-Methode erzeugt einfach ein PingPong-Objekt. Mit setActive() wird es im Speicher realisiert und stellt alle notwendigen Ressourcen her. setVisible() macht die PingPong-Anwendung sichtbar.

public static void main(String[] args) {
 Frame3D app = new PingPong();
 app.setActive(true);
 app.setVisible(true);
}

Die Hauptklasse PingPong

Der Konstruktor

Der Konstruktor der Klasse PingPong legt sämtliche 3D-Objekte an. Vorher setzt er den Namen des eigenen Frame3D-Objekts.

public PingPong() {
 setName("LG3D PingPong");

Danach berechnet er die Größe des Tisches sowie des Netzes. Mit dem Aufruf von setSize() gibt er dem SceneManager einen Hinweis seiner Größe. Dieser ist darauf angewiesen, um mehrere Anwendungen passend zu stapeln.

Vorbereiten und Berechnen

TableWidth = getScreenHeight() * 0.5f;
TableHeight = TableWidth * 0.6f;
TableDepth = TableWidth * 0.01f;
NetHeight = TableWidth * 0.025f;
setSize(TableWidth, TableHeight, TableDepth);
// create the container of the total application
Container3D top = new Container3D();

Wie in Tutorial1.java beschrieben, gibt es in der Welt von LG3D mehrere Klassen für 3D-Objekte. Grundlegend sind die Nachfolger von Shape3D. Diese müssen dann in ein oder mehrere Component3D eingefügt werden. Ein Component3D kann man anschließend drehen oder verschieben. Mehrere Component3D werden dann in einen Container3D eingefügt. Component3D und Container3D können dann in die von Frame3D abgeleitete Anwendung eingefügt werden. Dieses Einfügen geschieht in allen Fällen mit der Methode addChild(). Wir werden diese Aufrufe noch mehrmals sehen.

Vorbereitend wird ein Objekt der Klasse Container3D angelegt. Dieses dient zur Aufnahme aller weiteren 3D-Objekte.

Das erste 3D-Objekt

Danach wird der Tischtennis-Tisch erzeugt. Dazu wird die Klasse GlassyPanel verwendet. Das ist ein Relikt aus Lg3dHelp, denn hierfür könnte genausogut auch eine Box-Klasse verwendet werden.

GlassyPanel Table = new GlassyPanel(
 TableWidth /* + decoWidth * 2*/,
 TableHeight /*+ decoWidth * 2*/,
 TableDepth, TableDepth * 0.1f, TableApp);
// a 3D component which holds the Shape3D descendant GlassyPanel
Component3D TableComp = new Component3D();
TableComp.addChild(Table);
top.addChild(TableComp); // add to application container

Zuerst wird das Objekt Table für den Tisch angelegt. Danach wird ein Component3D-Objekt TableComp angelegt. In dieses wird Table eingefügt. Danach wird TableComp in das Container3D Objekt top eingefügt.

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