Sprite-Sheet-Klasse

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[gesichtete Version][gesichtete Version]
(Funktionsweise der Sprite Sheet Klasse: Rechen Fehler verbessert)
(Allgemeines zum Sprite Sheet: Erweiterung um andere Farben, Hinzufügen einer Anmerkung zur Genauigkeit der Farbangabe)
(Eine dazwischenliegende Version von einem Benutzer wird nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Kategorie:Für Einsteiger]]
 
[[Kategorie:Für Einsteiger]]
In Spiele ist es üblich Bilder zu verwenden, um die Spielfiguren, den Hintergrund, Gegenstände oder das User Interface darzustellen. Bedingt durch das Laden und Entladen vieler einzelner Bilder in den Speicher, kann  die Performance leiden. Eine gute Alternative zu Einzel Bilder sind Sprite Sheets. Sie haben nicht nur den Vorteil, dass die Performance verbessert wird, auch der benötigte Speicherplatz auf einem Datenträger wird geringer. Der Nachteil dabei ist, zum Verwalten eines Sprite Sheets wird eine Extra Klasse benötigt, der Aufbau und die Funktionsweise einer solchen Klasse wird in diesem Artikel beschrieben.
+
In Spielen ist es üblich, Bilder zu verwenden, um die Spielfiguren, den Hintergrund, Gegenstände oder das User Interface darzustellen. Bedingt durch das Laden und Entladen vieler einzelner Bilder in den Speicher kann  die Performance leiden. Eine gute Alternative zu einer Vielzahl von Einzelbildern sind Sprite Sheets. Sie haben nicht nur den Vorteil, dass die Performance verbessert wird, auch der benötigte Speicherplatz auf einem Datenträger veringert sich tendenziell. Der Nachteil dabei ist, dass zum Verwalten eines Sprite Sheets eine Extra Code benötigt wird. Der Aufbau und die Funktionsweise einer entsprechenden Klasse wird in diesem Artikel beschrieben.
 +
 
 
=== Allgemeines zum Sprite Sheet ===
 
=== Allgemeines zum Sprite Sheet ===
 
----
 
----
 
[[Datei:Spritsheetbeispiel.png|thumb|right|Beispiel für ein Sprite Sheet]]
 
[[Datei:Spritsheetbeispiel.png|thumb|right|Beispiel für ein Sprite Sheet]]
Ein Sprite Sheet ist eine große Bilddatei in dem mehrere kleine Bilder enthalten sind. Sowohl das Sprite Sheet wie auch die kleinen enthaltenen Bilder sollten eine Seitenlänge haben die einer Potenz der Zahl zwei entspricht z.B. 8, 16, 32, 64 usw. Diese Größe gewährleistet, dass auch ältere Grafikkarten damit arbeiten können. Die einzelnen Bilder sollten nach Möglichkeit alle gleich groß sein, es ist aber kein muss, es macht nur den Zugriff auf die einzelnen Bilder leichter. Die Hintergrundfarbe in einem Sprite Sheet sollte einheitlich sein, da diese Farbe im Spiel Transparent gemacht wird. Die Klassische Hintergrundfarbe ist <span style="color:#FF00FF">Lila</span>, sie setzt sich aus den Farbwerten:<span style="color:#FF0000"> Rot </span> = 255, <span style="color:#00FF00">Grün </span>= 0 und <span style="color:#0000FF">Blau </span> = 255 zusammen. Jede andere Farbe kann dafür auch gewählt werden, zu bedenken ist dabei nur, dass all Pixel mit dieser Farbe im Spiel Transparent werden.
+
Ein Sprite Sheet ist eine Bilddatei, in der mehrere Einzelbilder enthalten sind, die nicht miteinander in Beziehung stehen müssen. Sowohl die Breite und Höhe des Sprite Sheets, als auch der Einzelbilder sollten einer Potenz von 2 entsprechen, z. B. 4, 8, 16, 32 oder höher. Diese Größe gewährleistet, dass auch ältere Grafikkarten damit problemlos arbeiten können. Die Einzelbilder sollten idealerweise gleich groß sein. Es ist nicht zwingend erforderlich, macht aber den Zugriff auf die Einzelbilder wesentlich leichter. Sofern die Transparenz nicht über den Alphakanal geregelt wird, sollte die Hintergrundfarbe einheitlich sein, da diese Farbe dann im Spiel transparent gemacht wird. Häufig verwendete Hintergrundfarben sind <span style="background-color:#FF00FF">Lila (255, 0, 255)</span>, ein <span style="background-color:#7F007F;color:white">dunkleres Lila (127, 0, 127)</span>, <span style="background-color:#00FFFF">Zyan (0, 255, 255)</span> oder ein <span style="background-color:#007F7F;color:white">dunklerer Blau-Grün-Ton (0, 127, 127)</span>. Die Farbe kann frei gewählt werden, wobei man allerdings sicherstellen muss, dass die Farbe im Spiel nicht sichtbar sein wird und somit nicht im Bild verwendet werden darf.
 +
 
 +
Die Farbe wird nur dann als Hintergrundfarbe interpretiert undn icht dargestellt, wenn der Farbwert exakt stimmt. Somit ist es möglich, eine für den Menschen nicht von dieser unterscheidebare Farbe zu verwenden, die sich in einem der Farbwerte nur um 1 Unterscheidet. Weiterhin resultiert daraus, dass das gewählte Dateiformat eine Verlustfreie Kodierung ermöglichen muss, da ansonsten aufgrund der Kompression nicht die gesamte Farbfläche erkannt wird und einzelne Pixel nicht transparent dargestellt werden.
  
 
=== Aufbau der Sprite Sheet Klasse ===
 
=== Aufbau der Sprite Sheet Klasse ===

Version vom 24. September 2012, 17:03 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge