5 Stimmen

Wie funktionieren die Sprites?

Wie funktionieren die Sprites?

Ich habe Sprites von Old-School-Spielen wie Super Mario Brothers gesehen und mich gefragt, wie sie animiert werden, um ein Spiel zu machen.

Sie werden immer als eine große Bildkarte dargestellt, wie werden sie also verwendet?

Gibt es für Mario (als Beispiel) vorberechnete Bildkoordinaten, die Mario umreißen und zwischen verschiedenen Mario-Sprites ausgetauscht werden, um eine Animation zu erzeugen?

Oder werden die Sprites während der Spielinitialisierung mit Hilfe von vorberechneten Bildkoordinaten "geschnitten" und irgendwo im Speicher abgelegt?

Offensichtlich weiß ich nichts über die Entwicklung von Spielen.

2voto

munificent Punkte 11450

2D-Konsolen wie das NES und der DS unterteilen Bilder in eine zweistufige Hierarchie. Die unterste Ebene ist ein Tileset. Ein Tileset ist eine indizierte Sammlung von 8x8-Pixel-Bildern. Ein Tileset wird beim Laden des Levels geladen, normalerweise in einen Teil des Speichers, der für die Grafik vorgesehen ist.

Darauf werden dann die Sprites und Levels aufgebaut. Ein Sprite für eine Figur mit 32x64 Pixeln wird in 4x8 Kacheln unterteilt. Um ein Sprite zu definieren, braucht man jetzt nur noch 32 Werte, um die Indizes der verwendeten Kacheln zu identifizieren. Das ist sehr speichereffizient. Verschiedene Animationsframes und Sprites können nun dieselben Kacheln wiederverwenden, was eine Menge Speicherplatz spart.

Damit das Spiel nun ein Sprite zeichnen kann, sucht es einfach die Kacheln bei jedem Index für das Sprite und zeichnet sie an der richtigen Stelle auf dem Bildschirm. Normalerweise übernimmt die Konsolenhardware selbst diese Aufgabe. So kann man auf sehr begrenzter Hardware (das ursprüngliche NES hatte eine 1,67-MHz-CPU und nur 4k RAM) erstaunlich gute Grafiken erzielen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X