Breakanoid - PowerPoint PPT Presentation

wenda
von der planung bis zum hauptmen n.
Skip this Video
Loading SlideShow in 5 Seconds..
Breakanoid PowerPoint Presentation
play fullscreen
1 / 25
Download Presentation
Breakanoid
90 Views
Download Presentation

Breakanoid

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Von der Planung bis zum Hauptmenü Breakanoid Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke

  2. Inhalt • Die Spielzustände • Das Spielgerüst • CBreakanoid • Das Titelbild • Das Hauptmenü

  3. Die Spielzustände • Das Intro EGameState: GS_INTRO Besteht meistens aus einem kleinen Video, hier jedoch nur aus einem Titelbild. Fordert den Benutzer auf eine Taste zu drücken um in das Hauptmenü zu gelangen.

  4. Die Spielzustände • Das Hauptmenü EGameState: GS_Menu Besteht aus einem Hintergrundbild. Dazu gibt es 3 • Spiel Starten • Hilfe Anzeigen • Spiel Beenden Auswahlmöglichkeiten: Mit Hilfe der Pfeiltasten können die einzelnen Menüpunkte angewählt und mit einer„ Bestätigungstaste“ ausgewählt werden.

  5. Die Spielzustände • Das Spiel EGameState:GS_GAME Das eigentliche Spiel und der Hauptteil des Quellcodes EGameState:GS_NONE Der Anfangsstatus und der Endstatus wenn man das Programm beenden will.

  6. Das Spielgerüst Wichtige Klassen • Die Klasse CBreakanoid • Enthält alles was für das Spiel wichtig ist. • Wird in der WinMain-Funktion erzeugt. • Ein Zeiger auf die Instanz wird als globale Variable gespeichert. • Die Spielzustandsklassen • Für jeden Zustand werden eigene Klassen erzeugt. • 1. CIntro • 2. CMainMenu • 3. CGame • -Zeiger auf die Instanzen in CBreakanoid

  7. Das Spielgerüst Globale Variablen • g_pBreakanod: Der Zeiger auf die CBreakanoid Instanz. • Dynamisches Array float* g_pfButtons: Speicherung der zustände der Analoge Knöpfe • Dynamisches Array Bool* g_pbButtons: digitale Werte der Knöpfe

  8. Das Spielgerüst Wichtige Methoden • Load: • - Enthalten in CBreakanoid und den Spielzustandsklassen • Lädt alle wichtigen Daten. • Z.b Texturen aber auch die Initialisierung der DirectX- Schnittstellen • Unload: - Das Gegenteil von Load

  9. Das Spielgerüst Wichtige Methoden 2 • Init: • - Enthalten in CBreakanoid und den Spielzustandsklassen • Sorgt für die Initialisierung des Spiels oder des Zustands. • Ruft die Load-Methode auf • Punkte des Spielers auf Null setzen und laden des 1. Levels • Instanzen der Spielzustandsklassen werden erstellt. • Exit: - Gegenteil von Init()

  10. WinMain-Funktion • Ist die Hauptfunktion die dafür sorgt das alles ans laufen kommt. • Beinhaltet den Aufruf von Init(), Run(), und Exit(), Der CBreakanoid Klasse

  11. CBreakanoid::Init • Setzt die gesamte klasse mit hilfe von ZeroMemory zurück. • TriBase Engine wird initialisiert • Load wird ausgeführt • Spielzustandsklassen Initialisieren • Spielzustand auf GS_INTRO setzen • Exit Methode macht alles wieder rückgängig

  12. CBreakanoid::Load • Lädt alle Daten die für das gesamte Spiel von wichtigkeit sind also vor allem die Initialisierung der DirectX-Klassen der TriBase-Engine. • Als gegenteil von CBreakanoid::Load besteht die CBreakanoid::Unload Methode aus vielen TB_SAFE_DELETE aufrufen.

  13. CBreakanoid::Run • Ruft tbDoMassageLopp auf in der für jeden Frame eine Move und eine Render Funktion abgelaufen wird. • Da der direkte Aufruf der CBreakanoid-Methoden Probleme machen würden, werden die in zwei normalen Funktionen gekapselt.

  14. CBreakanoid::Move und ::Render • Erwarten einen float Parameter der die Zeit in Sekunden des letzten Frames beinhaltet • Rufen eigentlich nur die ::Move und ::Render Methoden des gerade Aktiven Spielzustandes auf. • Move fragt zuerst die Eingabegeräte ab und Speichert die Daten in g_pfButtons oder g_pbButtons. • Zum Schluss aktualisiert CBreakanoid::Move noch m_fTime indem die zeit des letzten Frames addiert wird.

  15. Beispiel 1 • Datei: Breakanoid.cpp & Breakanoid.h • WinMain-Funktion • Klasse Cbreakanoid • Init und Exit • Load und Unload • SetGameState

  16. Das Titelbild • Besteht aus einem Bild mit dem Namen des Spiels. • Ein Text der den Spieler dazu auffordert eine Taste zu drücken.

  17. Das Titelbild • Ist der Spielzustand GS_INTRO und die Klasse CIntro. • Beinhaltet Methoden Init, Exit, Load und Unload, Move und Render • Als Variable kommt in CIntro nur LPDIRECT3DTEXTURE9 m_pTitel, also die Textur die das Titelbild beinhaltet.

  18. Laden und Entladen des Titelbilds • Die Init-Methode von CIntro ruft lediglich die Load-Methode auf. • Exit ruft dementsprechend nur die Unload-Methode auf. • Die Load-Methode lädt das Titelbild mit Hilfe des Texturmanagers. • Unload löscht die Titelbildtextur.

  19. Rendern des Titelbilds • Ein Rechteck das mit der Textur des Bildes überzogen wird. • Dafür werden transformierte Vertizes benutzt. • Eine kleine Animation indem für jedes Frame die Koordinaten der Vertizes ein wenig verändert wird

  20. Beispiel 2 • Datei Intro.cpp & Intro.h • Init und Load des Intros • Move und Render • Animation und Text

  21. Das Hauptmenü • Spielzustand GS_MAIN_MENU • Klasse CMainMenu • Drei Wahlmöglichkeiten • Spiel Starten: Ändert Spielzustand in GS_GAME • Hilfe Anzeigen: Zeigt einen Hilfetext an • Spiel beenden • Ein sich als bewegendes Hintergrundbild. • Auswahlmöglichkeiten mit Hilfe der Pfeiltasten und Auswahl mit Return

  22. Rendern des Menüs • Wie das Titelbild mit dem Unterschied das ein Char Array mit den Menüpunkten enthalten ist. • Für das Rendern der Menüpunkte wird eine For-Schleife abgelaufen. • Eine Einfache Animation lässt den ausgewählten Text sich bewegen und eine Farbänderung ihn hervorheben. • Wird Natürlich nur Angezeigt wenn die Bool-Variable für den Hilfetext false anzeigt.

  23. Sound • Sound wird in CBreakanoid::Load geladen. • CBreakanoid enthält ein Array mit 12 Elementen für 12 verschiedene Soundeffekten.

  24. CMainMenu::Move • Verarbeitet die Eingaben des Spielers. • Pfeiltasten Verändern den Wert von m_iCursor • Bestätigungstaste führt Aktion die für den Wert von m_iCursor gedacht ist aus. • Ausnahme bei Anzeige des Hilfetextes

  25. Beispiel 3 • Datei: MainMenu.cpp & MainMenu.h • Move und Render • Animation und Text