2017-04-30 10 views

Antwort

1

Ableitung Dreieck, Quad, Kreis, etc .. Von einem 'Shape' Schnittstelle, die die draw() Methode definiert. http://tutorials.jenkov.com/java/interfaces.html

Erstellen Sie dann eine Liste und schieben Sie die Formen nach Bedarf hinein und heraus. http://www.codejava.net/java-core/collections/java-list-collection-tutorial-and-examples

In Ihrer onDrawFrame(GL10 gl) Methode, über die Shape-Liste.

for(Shape s : shapeList) s.draw(gl); 

Auch sollte wahrscheinlich die Form Position in die Form für die glTranslate Anrufe hinzufügen

+0

Können Sie ein Beispiel geben? Ich verstehe nicht – amanda45

+0

@ James-Poag- Wo mache ich die Liste? – amanda45

3

Sie eine Schnittstelle oder Klasse erstellen Form genannt. Dies enthält die Daten, die zum Rendern einer 3D-Form benötigt werden (Scheitelpunkte, Indizes, Farbdaten usw.). Alternativ die VAO/VBO/Textur ID/andere IDs für das Rendering. Der Vorteil einer Klasse besteht darin, dass Sie die Methoden initialisieren und alles in einer einzigen Klasse behalten können, während Sie die Möglichkeit haben, sie zu erweitern und weitere Klassen (Cube, Pyramid usw.) zu erstellen, um Ihre Objekte anzupassen.

Nachdem Sie die Klasse (n) zu erstellen, erstellen Sie eine neue Liste oder Karte:

public List<Shape> shapes = new ArrayList<>(); 
//add whatever shapes you want. Create them at runtime (generate) 
// or keep them static. It is up to you 

In dieser Klasse, die Sie erstellen Sie können auch eine Rendering-Methode implementieren. Dort zeichnen Sie die Objekte. Ein Vorteil bei der Verwendung einer Klasse besteht darin, dass Sie die Zeichnung in diese Klasse einfügen können. Wenn Sie in der Klasse keine bestimmte Zeichenmethode definieren, müssen Sie jedes Objekt in der Hauptrenderingmethode manuell zeichnen.