Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Professional XNA Game Programming

Ähnliche Präsentationen


Präsentation zum Thema: "Professional XNA Game Programming"—  Präsentation transkript:

1 Professional XNA Game Programming
Auszug aus dem Buch am Beispiel von XNATetris By Benjamin Nitschke

2 XNA Tetris Wiederbenutzbare Game Components Texture Fonts mit Bitmaps
Wie erkennen wir Input/Steuerung in XNA Wie spielen wir Sound in XNA ab Am Beispiel von XNA Tetris sieht man wie das alles geht!

3 Wiederbenutzbare Game Components
Trennung zwischen Basis-Klasse, Tetris Spiel und Tests

4 Wiederbenutzbare Game Components
Beispiele für Game Components Frame Counter Screenshot Grabber Teile eines Spiels (siehe rechts) Oder sogar Teile einer Render-Engine um z.B. 3D landscapes darzustellen Aber wir schreiben nicht alles als Game Components, oft ist es besser einfach Code zu schreiben

5 Wiederbenutzbare Game Components
GameComponent hat Initialize und Update Methoden Kann benutzt werden für Updates und Spiellogik Oder um Input Daten zu handeln Oder wenn Du das Rendern selbst machen willst DrawableGameComponent hat eine Draw Method Leichter zu benutzen, wenn man was rendern will Gut für 2D Grafik, Draw wird automatisch aufgerufen Aber kann auch zum falschen Zeitpunkt rendern

6 Texture Fonts Fonts waren nicht supported in XNA 1.0 (Update: Seit XNA 1.0 Refresh von April 2007 gibt es nun eine neue TextureFont Klasse, aber vielleicht will man immer noch wissen wie es funktioniert) Wenn man nur 2-3 Texte im Spiel hat reicht oft eine einfache Texture mit vorgerenderter Grafik aus Wenn man vollen Text-Support will, muss man über Bitmaps selbst Buchstaben stückchenweise rendern

7 Texture Fonts Selbst so eine Bitmap Font zu erstellen und auszuschneiden ist nicht einfach, am besten ein Tool benutzen oder vorhandene Fonts benutzen.

8 Texture Fonts Um Text zu schreiben die WriteText(x, y, message) Methode benutzen Um rauszufinden wieviel Platz auf dem Bildschirm durch ein Text benoetigt werden GetTextWidth(message) benutzen Und um letzendlich alle font Texte auf den Bildschirm zu bringen die WriteAll() Methode zu benutzen

9 Handling Input Fing alles mal ganze einfach an
Nun gibts wirklich viele Properties, aber nach wie vor sehr nützlich Viele sinnvolle Extra-Funktionen Damit es funktioniert einfach nur jeden Frame Update aufrufen

10 Handling Sound Jedes Spiel brauch seine eigene Sound-Klasse weil die Sounds nunmal immer anders sind Benutz ein Unit-Test um alle Sounds zu testen XNA Tetris benutzt folgende Soundeffekte: BlockMove wenn man ein Block bewegt BlockRotate wenn man ein Block rotiert BlockFalldown wenn ein Block den Boden erreicht LineKill kommt jedes mal, wenn eine Linie komplett wird Fight beginnt das Spiel Und Victory und Lose kommen am Spiel-Ende

11 XNA Tetris So, genug Theorie, es wird Zeit für XNA Tetris
Tetris stammt ursprünglich von Alexey Pajitnov aus Russland Wir benutzen im Spiel paar einfache Grafiken für: den Hintergrund Spielelemente Und die Tetris-Blocks

12 XNA Tetris Gucken wir uns mal das Rendern des Hintergrunds im Detail mit dem folgenden Unit Test an:

13 XNA Tetris Als naechstes brauchen wir das Tetris-Spielfeld. Wir wollen ein Spielfeld von 12x20 blocks: Und den Code zum Rendern:

14 XNA Tetris Die verschiedenen Block-Typen in XNA Tetris:
O: Der blockigste von allen T: Mr. T I: Tetris! J: Gespiegeltes L L: Das Gegenteil von J ^^ S und Z sind die Zig-Zags

15 XNA Tetris Gravitation wird von der Update Methode jede Sekunde (und schneller) verwaltet Letzendlich überprüfen wir jeden Frame ob der aktuelle Block noch weiter nach unten beweget werden kann (oder in die Richtung vom Input) Wenn das nicht klappt wird der Block fixiert und ein neuer Block wird oben erstellt und das Spiel geht von vorne los. Jedesmal, wenn ein Block den Boden berührt müssen wir gucken ob eine Linie voll wurde!

16 XNA Tetris Damit das ganze Spass macht, muss man natürlich noch ein bisschen Fine-Tuning betreiben und z.b. die Schwierigkeit, Punkte, Levels, Geschwindigkeit, Steuerung, etc. anpassen. Aber schon nach einigen Unit-Tests kann man mit den Grundprinzipien rumspielen und überlegen wie man das Spiel erweitern kann TestRotatingBlock und TestFallingBlockAndKillLine sind die 2 wichtigsten Unit Tests dafür

17 XNA Tetris Erstmal ein bisschen Tetris spielen und relaxen
Erweiterungsideen: Neues Grafikset, neue Blocks, …

18 XNA Tetris Vielen Dank fürs Zuschauen
Mein Blog: Mein Buch: Professional XNA Game Development Coding4Fun.de:


Herunterladen ppt "Professional XNA Game Programming"

Ähnliche Präsentationen


Google-Anzeigen