2016-09-20 2 views
2

Ich erstelle ein Android-Side-Scrolling-Spiel mit der libgdx-Bibliothek. Ich verwende immediateModeRenderer20 in GL_TRIANGLE_STRIP Modus, um 2D-Dreieck-Streifen, die unendlich scrollen. Das Rendern funktioniert gut, ich habe herausgefunden, wie man Volltonfarben, Farbverläufe und alternierende Muster auf dem Streifen verwendet.Wie man eine Textur auf einem Dreiecks-Streifen rendert?

Gibt es eine Möglichkeit, einen Dreiecksstreifen zu rendern, aber mit einem .png oder einer Textur oder etwas Ähnlichem zu überlagern?

Ich habe in die texCoord(...) Methode sieht in den immediateModeRenderer20docs aber ich habe keine festen Beispiele auf gefunden, wie es zu benutzen.

Wenn jemand Code-Schnipsel oder Bilder benötigt, lassen Sie es mich wissen.

Antwort

0

Ja, es ist möglich, ich habe kürzlich das gleiche versucht.

Die Schleife für sie Rendering sieht einfach:

texture.bind(); 
immediateModeRenderer20.begin(camera().combined, GL20.GL_TRIANGLE_STRIP); 
immediateModeRenderer20.color(new Color(1, 1, 1, 1)); 
immediateModeRenderer20.texCoord(textureCoordinate.x, textureCoordinate.y); 
immediateModeRenderer20.vertex(point.x, point.y, 0f); 
immediateModeRenderer20.end(); 

Aber das Wichtigste ist, dass Sie bauen Ihre Textur Ihre Dreiecke passen Koordinaten. In meinem Fall würde ich ein Seil wie diese zeichnen:

http://imgur.com/i0ohFoO

aus einer Textur eines geraden Seil. Um jedes Dreieck zu texturieren, benötigen Sie die Texturkoordinaten x und y - denken Sie daran, dass Texturen unterschiedliche Koordinaten verwenden: von 0.0 bis 1.0 für x und y.

http://imgur.com/wxQ93KO

So Vertex Ihr Dreieck wird textureCoord Wert benötigen:

  1. x: 0,0, y: 0,0
  2. x: 0,0, y: 1,0
  3. x: Dreieck Länge, y: 0.0
  4. x: dreieckslänge, y: 1,0

und so weiter.

Verwandte Themen