Sprite-Sheet-Klasse
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[gesichtete Version] | [gesichtete Version] |
Koschi (Diskussion | Beiträge) (→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 | + | 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 | + | 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.