+ All Categories
Home > Documents > Breakanoid

Breakanoid

Date post: 24-Feb-2016
Category:
Upload: wenda
View: 25 times
Download: 0 times
Share this document with a friend
Description:
Von der Planung bis zum Hauptmenü. Breakanoid. Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke. Inhalt. Die Spielzustände Das Spielgerüst CBreakanoid Das Titelbild Das Hauptmenü. Die Spielzustände. Das Intro EGameState : GS_INTRO. - PowerPoint PPT Presentation
25
BREAKANOID Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke
Transcript
Page 1: Breakanoid

BREAKANOIDVon der Planung bis zum Hauptmenü

Seminar: Softwaretechnologie IIDozent: Prof. Manfred ThallerReferent: Jan Bigalke

Page 2: Breakanoid

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

Page 3: Breakanoid

Die Spielzustände1. Das Intro

EGameState: GS_INTROBesteht 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.

Page 4: Breakanoid

Die Spielzustände2. Das Hauptmenü

EGameState: GS_Menu

Mit Hilfe der Pfeiltasten können die einzelnen Menüpunkte angewählt und mit einer„ Bestätigungstaste“ ausgewählt werden.

Auswahlmöglichkeiten: 1.Spiel Starten2.Hilfe Anzeigen3.Spiel Beenden

Besteht aus einem Hintergrundbild. Dazu gibt es 3

Page 5: Breakanoid

Die Spielzustände3. Das Spiel

EGameState:GS_GAMEDas eigentliche Spiel und der Hauptteil des Quellcodes

EGameState:GS_NONE

Der Anfangsstatus und der Endstatus wenn man das Programm beenden will.

Page 6: Breakanoid

Das SpielgerüstWichtige 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

Page 7: Breakanoid

Das SpielgerüstGlobale 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

Page 8: Breakanoid

Das SpielgerüstWichtige 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

Page 9: Breakanoid

Das SpielgerüstWichtige 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

• Exit:

- Instanzen der Spielzustandsklassen werden erstellt.

- Gegenteil von Init()

Page 10: Breakanoid

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

Page 11: Breakanoid

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

Page 12: Breakanoid

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.

Page 13: Breakanoid

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.

Page 14: Breakanoid

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.

Page 15: Breakanoid

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

Page 16: Breakanoid

Das Titelbild Besteht aus einem Bild mit dem Namen

des Spiels. Ein Text der den Spieler dazu auffordert

eine Taste zu drücken.

Page 17: Breakanoid

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.

Page 18: Breakanoid

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.

Page 19: Breakanoid

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

Page 20: Breakanoid

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

Page 21: Breakanoid

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

Page 22: Breakanoid

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.

Page 23: Breakanoid

Sound• Sound wird in CBreakanoid::Load geladen. • CBreakanoid enthält ein Array mit 12

Elementen für 12 verschiedene Soundeffekten.

Page 24: Breakanoid

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

Page 25: Breakanoid

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