Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ein Spiel mit der SDL - Teil I. Ein Spiel mit der SDL  kostenlose Bibliothek – Simple DirectMedia Layer Grafik darstellen Benutzereingaben abfragen Sounds.

Ähnliche Präsentationen


Präsentation zum Thema: "Ein Spiel mit der SDL - Teil I. Ein Spiel mit der SDL  kostenlose Bibliothek – Simple DirectMedia Layer Grafik darstellen Benutzereingaben abfragen Sounds."—  Präsentation transkript:

1 Ein Spiel mit der SDL - Teil I

2 Ein Spiel mit der SDL  kostenlose Bibliothek – Simple DirectMedia Layer Grafik darstellen Benutzereingaben abfragen Sounds und Musik abspielen plattformunabhängig http://www.libsdl.org/  Verwendetes Beispiel aus Kalista: C++ für Spieleprogrammierer

3 Einrichten des Projektes  Headerdateien einbinden (include)  Bibliotheksdateien einbinden (lib)

4 Einrichten des Projekts  Explizite Angabe der Bibliotheksdateien  Codeerstellung

5 Ein Spiel mit der SDL  Spaceinvaders light  Asteroiden fallen vom oberen Bildschirmrand nach unten  Der Spieler steuert ein Raumschiff bewegt sich horizontal am unteren Bildschirmrand feuert auf die Asteroiden trifft ein Schuß einen Asteroiden, wird dieser zerstört

6 Ein Spiel mit der SDL

7 TSingleton CTimerCFramework CGame CPlayer CShot CAsteroids CSprite

8 Die Klasse CTimer  Zeitgeber zur Realisierung einer gleichförmigen Bewegung unabhängig der Rechnergeschwindigkeit misst die Zeit zwischen den Frames vergangene Zeit seit dem letzten Frame dient als Skalierung  Speichert die Zeit des letzten Frames  Berechnet die vergangene Zeit

9 Die Klasse CFramework  Grafik auf den Bildschirm bringen  Tastatureingaben verwalten  Verwaltung der SDL Initialisierung eines Ausgabebereiches für die Grafik (Surface) SDL_SetVideoMode ○ Höhe, Breite, Farbtiefe ○ Verwaltung im Videospeicher (SDL_HWSURFACE) ○ Doublebuffering (SDL_DOUBLEBUF) ○ Vollbild (SDL_FULLSCREEN)

10 Die Klasse CFramework  Update in jedem Gameloop Update des Timers Ermitteln des Zustandes der Tastatur  Abfrage gedrückter Tasten  Löschen des Grafikpuffers  Umschalten der Surface (flip)  Beenden der SDL

11 Doublebuffering und Flipping  Im Speicher werden 2 Surfaces (Zeichnungsfläche) gehalten  gezeichnet wird in die Surface, die gerade nicht angezeigt wird (Backbuffer)  Umschalten zwischen Backbuffer und angezeigter Surface nach dem Rendern  Funktioniert nur bei Verwendung vom Videospeicher

12 Ein Spiel mit der SDL TSingleton CTimerCFramework CGame CPlayer CShot CAsteroids CSprite

13 Die Klasse CSprite  Sprite: kleine, rechteckige Grafik, die auf dem Bildschirm angezeigt wird  Laden der Grafik  Positionierung des Sprites  Transparente Farbe festlegen  Sprite auf den Bildschirm zeichnen  Verwaltung von animierten Sprites

14 Animierte Sprites  Sprite in mehreren Zuständen in einem Bild  Darstellung eines bestimmten Ausschnittes (Frame)  Zusätzliche Daten Höhe und Breite eines Frames Anzahl der Frames  Sprite wird unter Angabe des aktuellen Frames gerendert

15 Ein Spiel mit der SDL  Definition der Spielobjekte Spieler (Raumschiff) Asteroiden Schüsse  Verwaltung der Spielobjekte von der Klasse CGame Schüsse werden von der Spielerklasse verwendet CGame kümmert sich außerdem um die Spiellogik

16 Die Klasse CShot  Darstellung der Schüsse des Raumschiffes  Einmaliges Laden des zugehörigen Bild Zeiger auf den Sprite wird jeder CShot-Instanz übergeben Speicherung der Position in jeder Instanz Vor dem Zeichnen wird das Sprite auf die jeweilige Position verschoben  Lebenszyklus von CPlayer verwaltet  Schuß bewegen, Position prüfen  Schuß anzeigen

17 Die Klasse CAsteroid  Darstellung der Asteroiden  Äquivalent zur Klasse CShot  Asteroiden sind animiert inkrementieren der Animationsphase (nicht nach jedem Loop!)


Herunterladen ppt "Ein Spiel mit der SDL - Teil I. Ein Spiel mit der SDL  kostenlose Bibliothek – Simple DirectMedia Layer Grafik darstellen Benutzereingaben abfragen Sounds."

Ähnliche Präsentationen


Google-Anzeigen