Nein. Du kannst in eine Instanz der Klasse
TglBitmap2D nur eine einzige Textur laden. Da bin ich mir ziemlich sicher.
Das ist aber auch nicht unbedingt der typische Anwednungsfall in OpenGL. Du hast in OpenGL normal mehrere Texturen und je nachdem welche du gerade benutzen möchtest bindest du die entsprechende Textur. Und genau so verhält sich das auch mit der
TglBitmap2D. Wenn du 3 unterschiedliche Texturen haben möchtest benötigst du auch 3 eigenständige Instanzen der Klasse
TglBitmap2D. Und das Laden bitte nach dem Initialisieren von OpenGL. Nicht zwischendurch beim Zeichnen.
Definition
1:
| fTextures: array[0..2] of TglBitmap2D; |
Texturen laden
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| fTextures[0] := TglBitmap2D.Create; fTextures[0].LoadFromFile(...); fTextures[0].GenTexture();
fTextures[1] := TglBitmap2D.Create; fTextures[1].LoadFromFile(...); fTextures[1].GenTexture();
fTextures[2] := TglBitmap2D.Create; fTextures[2].LoadFromFile(...); fTextures[2].GenTexture(); |
In deinem Spielfeld bräuchtest du jetzt nur noch Bezug auf den Index des Textur Arrays nehmen und zeichnen.
Zeichnen
1: 2:
| fTextures[SpielFeld[X, Y].TextureIdx].Bind; |
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.