Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Tomas Salzmann Geändert vor über 7 Jahren
1
Ein Spiel mit der SDL – Teil 2
2
Ein Spiel mit der SDL TSingleton CTimerCFramework CGame CPlayer CShot CAsteroids CSprite
3
Die Klasse CSpieler Bewegung des Spielers Tastaturabfrage Verändern der Position des Raumschiffes Anpassen der Animationsphase Position überprüfen Verwaltet die Schüsse neuen Schuss abgeben vorhandene Schüsse bewegen
4
Die Klasse CGame Spiel initialisieren Gameloop Ereignisse bearbeiten (z.B. Spiel beenden) Update des Frameworks Update der Spiellogik ○ Spielfigur (Bewegung, Schuss) ○ Asteroiden spawnen ○ Asteroiden updaten ○ Kollisionskontrolle Zeichnen der Spielobjekte ○ Buffer flippen
5
Die main() - Funktion Framework initialisieren Spiel (CGame) Instanz erstellen Spiel initialisieren Spiel starten Spiel beenden Framework beenden und freigeben
6
Verbesserungsmöglichkeiten Striktes Trennen zwischen Update und Render Verwenden von Konstanten für Parameter (z.B. Geschwindigkeit der Asteroiden) Vererbungshierarchie einführen (z.B. DisplayableObject) Hinzufügen von Features Kollision zwischen Raumschiff und Asteroiden Einführen eines Punktestandes Explosionen Menu weitere Informationen unter http://www.libsdl.org/
7
Weitere wichtige Konzepte Safepointer / Smartpointer Funktionszeiger Überladen von Operatoren Mehrfachvererbung LogFile-Klasse Observer Pattern C++ Bibliotheken
8
Funktionszeiger Pointervariable, die auf die Einsprungadresse einer Funktion oder Member-Methode zeigt Definition mit Parameterliste und Rückgabewert retType (*fpName)(paraList) Klammerung um den Variablennamen! Zuweisung linke Seite: Funktionspointer rechte Seite: Name der Funktion Signatur von Funktion und Pointer muss gleich sein
9
Funktionszeiger Pointer auf statische Memberfunktionen Scope bei Zuweisung des Funktionszeigers mit angeben fp = className::methodName Pointer auf nichtstatische Member bei Definition des Pointers Angabe des Klassennamen retValue (classname::*fpName)(params); Zuweisung erfordert Adressoperator fpName = &classname::methodName;
10
Funktionszeiger Pointer auf nichtstatische Member sind auf den Scope angewiesen! Scope auf spezielle Variable beim Aufruf des Funktionspointers className myVar; (myVar.*fpName)(params);
11
Der this-Pointer wird in Member Funktionen verwendet Referenziert das aktuelle Objekt Äquivalenter Zugriff auf Eigenschaften/Methoden this->myVar = 0; entspricht myVar=0; this->myMethod(); entspricht myMethod(); Hauptverwendung Rückgabe des aktuellen Objektes Übergabe des aktuellen Objektes als Funktionsparameter
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.