Von der planung bis zum hauptmen
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

Breakanoid PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Breakanoid

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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

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.


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.


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.


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


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


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


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()


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


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


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.


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.


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.


Beispiel 1

  • Datei: Breakanoid.cpp & Breakanoid.h

  • WinMain-Funktion

  • Klasse Cbreakanoid

  • Init und Exit

  • Load und Unload

  • SetGameState


Das Titelbild

  • Besteht aus einem Bild mit dem Namen des Spiels.

  • Ein Text der den Spieler dazu auffordert eine Taste zu drücken.


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.


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.


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


Beispiel 2

  • Datei Intro.cpp & Intro.h

  • Init und Load des Intros

  • Move und Render

  • Animation und Text


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


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.


Sound

  • Sound wird in CBreakanoid::Load geladen.

  • CBreakanoid enthält ein Array mit 12 Elementen für 12 verschiedene Soundeffekten.


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


Beispiel 3

  • Datei: MainMenu.cpp & MainMenu.h

  • Move und Render

  • Animation und Text


  • Login