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

Breakanoid PowerPoint PPT Presentation


  • 61 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

Von der Planung bis zum Hauptmenü

Breakanoid

Seminar: Softwaretechnologie II

Dozent: Prof. Manfred Thaller

Referent: Jan Bigalke


Inhalt

Inhalt

  • Die Spielzustände

  • Das Spielgerüst

  • CBreakanoid

  • Das Titelbild

  • Das Hauptmenü


Die spielzust nde

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 nde1

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 nde2

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

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 st globale variablen

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 st1

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 st2

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

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

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

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

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

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

Beispiel 1

  • Datei: Breakanoid.cpp & Breakanoid.h

  • WinMain-Funktion

  • Klasse Cbreakanoid

  • Init und Exit

  • Load und Unload

  • SetGameState


Das titelbild

Das Titelbild

  • Besteht aus einem Bild mit dem Namen des Spiels.

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


Das titelbild1

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

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

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

Beispiel 2

  • Datei Intro.cpp & Intro.h

  • Init und Load des Intros

  • Move und Render

  • Animation und Text


Das hauptmen

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

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

  • Sound wird in CBreakanoid::Load geladen.

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


Cmainmenu move

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

Beispiel 3

  • Datei: MainMenu.cpp & MainMenu.h

  • Move und Render

  • Animation und Text


  • Login