Ein Spiel mit der SDL – Teil 2. Ein Spiel mit der SDL TSingleton CTimerCFramework CGame CPlayer CShot CAsteroids CSprite.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Seminar: "Einführung in C/C++" Einführung in die Programmiersprache C/C++ Donnerstag Andreas Döring SS 2004.
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Ultris Version 8: Erzeugen der Formen und Anzeigen der Vorschau
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Programmieren mit JAVA
Abstrakter Datentyp in C++ I - Klasse -
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Das Streichholzspiel.
Repetitorium PG : Pointer FH-Darmstadt, FB Informatik.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Visionaire - Adventure Game Engine Tipps und Konzepte zur Entwicklung eines Spiele Editors Alex Hartmann.
se_8_statische_klassen.ppt1 Softwareengineering Statische Klassen Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Microsoft Student Partner
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Vererbung. Klassen - Vererbung  Eine Klasse kann von einer Basisklasse abgeleitet werden  Die abgeleitete Klasse erbt die Eigenschaften und Methoden.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Ein Spiel mit der SDL - Teil I. Ein Spiel mit der SDL  kostenlose Bibliothek – Simple DirectMedia Layer Grafik darstellen Benutzereingaben abfragen Sounds.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Operator Overloading, Mehrfachvererbung, Safe Pointer, Observer.
Tutorium Software-Engineering SS14 Florian Manghofer.
, PD Dr. Wolfram Amme, Tutorium zum Programmierpraktikum, FSU Jena, WS 2006/07 1 Objekte in Java.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Singletons, Exceptions und (s)printf. Template Klassen  äquivalent zu Template-Funktionen  beim Erzeugen von Instanzen muss der Typ angegeben werden.
Grundlagenkurs SPSS 2ter Teil. Exkurs Mehrfachantworten-Sets Eine typische Mehrfachantwort findet sich im Fragebogen als Q2 „In welcher dieser Städte.
Verwalten von Daten mit Hilfe von NTFS
Einführung in die Programmierung
Einführung in die Programmierung mit Java
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
ArcGIS Schulung [Einsteiger]
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Create Table, Rechte und Rollen
Einführung in die Programmierung
Bilsdchirmpräsentation
Grundkurs Informatik 11-13
Anpassen von Microsoft SharePoint Onlinewebsite
Lesen Sie alles darüber Microsoft SharePoint-News
Lesen Sie alles zu Microsoft SharePoint-News
Erstellen eines Sitzplans
Von Cem, Maurice und lars
Untertitel hier eingeben
Titel der Veranstaltung
Einführung in die Programmierung
«Delegierter» Methoden Schablone Funktionszeiger
Implementieren von Klassen
PGdP Tutorstunde 2 Gerald Mahlknecht Technische Universität München Informatik.
Statische und Nichtstatische Methoden Properties / Eigenschaften
TITEL IHRER VERANSTALTUNG
Zweck der „Sieht aus wie – klingt wie“-Übung
Informatik II – Übung 4 Gruppe 3
 Präsentation transkript:

Ein Spiel mit der SDL – Teil 2

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

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

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

Die main() - Funktion  Framework initialisieren  Spiel (CGame) Instanz erstellen Spiel initialisieren Spiel starten Spiel beenden  Framework beenden und freigeben

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

Weitere wichtige Konzepte  Safepointer / Smartpointer  Funktionszeiger  Überladen von Operatoren  Mehrfachvererbung  LogFile-Klasse  Observer Pattern  C++ Bibliotheken

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

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;

Funktionszeiger  Pointer auf nichtstatische Member sind auf den Scope angewiesen! Scope auf spezielle Variable beim Aufruf des Funktionspointers className myVar; (myVar.*fpName)(params);

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