Postępuję zgodnie z tym samouczkiem, aby dodać Opengl do mojej aplikacji na Androida. https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html. We wszystkich przykładach kształty są tworzone w konstruktorze MyGLRenderer, ale chcę wiedzieć, w jaki sposób mogę dynamicznie dodawać kształty Opengl po utworzeniu renderera. Jak to zrobić?Dynamicznie dodawaj kształty Opengl
Odpowiedz
Wykreśl trójkąt, kwadrat, kółko itd. Z interfejsu "Kształt", który definiuje metodę draw()
. http://tutorials.jenkov.com/java/interfaces.html
Następnie utwórz listę i wsuń kształty do środka i z niego w razie potrzeby. http://www.codejava.net/java-core/collections/java-list-collection-tutorial-and-examples
W swojej metodzie onDrawFrame(GL10 gl)
przeprowadź pętlę nad listą kształtów.
for(Shape s : shapeList) s.draw(gl);
Ponadto, prawdopodobnie należy dodać pozycję kształt do kształtu dla glTranslate
połączeń
utworzyć kształt interfejsu lub klasy nazywa. Będzie zawierał dane potrzebne do renderowania kształtu 3D (wierzchołki, indeksy, dane kolorów itp.). Alternatywnie VAO/VBO/identyfikator tekstury/inne identyfikatory do renderowania.
Zaletą zastosowania klasy jest to, że można zainicjować metody i zachować wszystko w jednej klasie, zachowując możliwość rozszerzenia i tworzenia większej liczby klas (kostki, piramidy itp.) W celu dostosowania obiektów.
Po utworzeniu klasy (ES), utworzyć nową listę lub mapę:
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
w tej klasie tworzonej można również wdrożyć metody renderowania. Tam rysujesz obiekty. Zaletą korzystania z klasy jest możliwość dodania rysunku do tej klasy. Jeśli nie zdefiniujesz konkretnej metody losowania w klasie, musisz ręcznie narysować każdy obiekt w głównej metodzie renderowania.
Czy możesz podać przykład? Nie rozumiem – amanda45
@ James-Poag- Gdzie mogę utworzyć listę? – amanda45