In diesem Artikel bieten wir Ihnen eine kleine Einführung in den Umgang mit dem XNA Game Studio. Wir werden Ihnen aufzeigen wie Sie ein neues Projekt im XNA Game Studio einrichten können.
Einführung.
Das XNA Game Studio ist eine großartige Möglichkeit für Anfänger, einen schnellen Einstieg in die Entwicklung von Spielen zu finden. XNA basiert auf dem .NET-Framework, mit dem Sie Spiele relativ einfach in C# entwickeln können.
Der MSDN Hub bietet Artikel, Codebeispiele und Tutorials für den Einstieg in XNA. Anfänger werden zu Beginn meistens mit einer Informationsflut konfrontiert – so viele Informationen, dass Sie überfordern und es Ihnen erschweren, herauszufinden, wo Sie eigentlich anfangen sollten. Mit diesem heutigen Beitrag möchten wir Ihnen aufzeigen, wie Sie einen Einstieg in diese Thematik finden und ein neues Projekt anlegen können.
Abhängigkeiten.
Bevor wir mit der Entwicklung eines XNA-Spieltitels beginnen können, müssen wir sicherstellen, dass wir ein paar Softwarepakete installiert haben.
- Visual Studio 2010: Visual Studio 2010 ist die aktuelle Entwicklungsumgebung von Microsoft. Wenn Sie XNA-Spiele mit dem XNA Game Studio 4.0 entwickeln möchten, benötigen Sie Visual Studio 2010. Wenn Sie ein Student sind, dann haben Sie wahrscheinlich Zugang zu Dreamspark, wo Sie Visual Studio 2010 Professional kostenlos herunterladen können. Andernfalls können Sie die Visual Studio 2010 Express Editionen herunterladen. Höchstwahrscheinlich werden Sie das All-in-One ISO erhalten wollen, wenn Sie sich nicht sicher sind, welche Version Sie herunterladen sollen.
- XNA Game Studio: XNA Game Studio 3.1 funktioniert, wenn Sie Visual Studio 2008 verwenden. Wenn Sie XNA Game Studio 4.0 verwenden möchten, benötigen Sie Visual Studio 2010.
Erste Schritte.
Sie müssen entweder Visual Studio 2008 oder Visual Studio 2010 installiert haben, bevor Sie mit der Entwicklung von Spielen mit dem XNA Game Studio beginnen können. Wir werden den Prozess der Installation der Visual Studio-Entwicklungsumgebung in diesem Artikel nicht weiter näher beschreiben.
- Wenn Sie Visual Studio 2008 haben, müssen Sie XNA Game Studio 3.1 herunterladen und installieren.
- Wenn Sie Visual Studio 2010 haben, müssen Sie XNA Game Studio 4.0 herunterladen und installieren.
In diesem Artikel werden wir Visual Studio 2010 und XNA Game Studio 4.0 verwenden, aber alles, was wir hier aufzeigen, sollte auf Visual Studio 2008 und XNA Game Studio 3.1 anwendbar sein. Wenn etwas explizit für Game Studio 4.0 gilt, werden wir versuchen eine Alternative für diejenigen anzubieten, die XNA Game Studio 3.1 verwenden. Aber hoffentlich ist dieser Fall sehr selten.
Ein neues Projekt erstellen.
Bevor wir mit der Entwicklung des nächsten Blockbuster-Spiels beginnen können, müssen wir ein neues Spielprojekt in Visual Studio erstellen.
Starten Sie Visual Studio und wählen Sie Datei > Neu > Projekt im Hauptmenü. Durch die Eingabe werden Sie ein unterstehendes Dialogfeld mit der Bezeichnung „Neues Projekt“ sehen.
Erweitern Sie im Bereich „Templates“ die Option „Visual C#“ und wählen Sie die Templateoption „XNA Game Studio 4.0“. Visual Studio 2008-Nutzer hingegen wählen die Templateoption „XNA Game Studio 3.1“.
Im rechten Bereich werden die verfügbaren Projektvorlagen angezeigt, aus denen Sie auswählen können. Wählen Sie die Vorlage „Windows Game“, um ein neues Spielprojekt zu erstellen.
Wählen Sie im Textfeld „Name“ eine Bezeichnung für Ihr neues Projekt, einen Ort, an dem die neue Lösung im Feld „Ort“ gespeichert werden soll, und optional können Sie im Feld „Lösungsname“ einen anderen Namen für die erstellte Lösung angeben.
Drücken Sie die große, beängstigende „OK“-Taste, wenn Sie bereit sind, die Zukunft von Videospielen zu gestalten.
Je nachdem, welche Version von XNA Game Studio Sie verwenden, wird Ihnen im Solutions Explorer eine andere Ansicht des ersten Projekts angezeigt.
In dem oben gezeigten Screenshot sehen Sie, dass die Projektvorlage zwei neue Projekte erstellt hat, das Spielobjekt und das Content-Projekt. Wenn Sie Visual Studio 2008 und XNA Game Studio 3.1 verwenden, dann ist das Content-Projekt ein Teilprojekt des Game Projekts. Ab XNA Game Studio 4.0 ist das Content-Projekt ein eigenes Projekt in der Lösung.
Dein neues Spielprojekt wird dir ein paar Standarddateien zur Verfügung stellen:
- Spiel1.cs: Diese Datei enthält die Haupt-GameClass, die die Logik Ihres Spiels definiert. Dies ist die Datei, mit der Sie höchstwahrscheinlich arbeiten werden, wenn Sie ein Spiel programmieren.
- Programm.cs: Diese Datei enthält den Haupteingangspunkt für Ihr Spiel. Eine Instanz Ihrer Haupt-GameClass (Game1.cs) wird instanziiert und von hier aus ausgeführt. Wenn Sie keinen speziellen Initialisierungscode ausführen müssen, bevor die Spielklasse instanziiert wird, werden Sie normalerweise keine Änderungen an der Datei Program.cs vornehmen.
An dieser Stelle können Sie das neu erstellte Spielprojekt bereits starten. Um das Spiel auszuführen, wählen Sie „Debug > Start Debugging“ (F5). Sie sollten ein Fenster mit einem kornblumenblauen Hintergrund sehen.
Game Class.
Lassen Sie uns einen genaueren Blick auf die Game Class 1 werfen.
Diese Anweisungen fügen diese Pakete zu den Kompilierungspfaden hinzu, so dass Sie Zugriff auf die Klassen haben, auf die in diesen Paketen in ihrem Quellcode verwiesen wird. Aber woher kommen diese Pakete? Wenn Sie sich das Spielprojekt im Solution Explorer ansehen, sehen Sie in der Baumansicht ein Node mit der Bezeichnung „Referenzen“. Wenn Sie den Node „Referenzen“ erweitern, sehen Sie eine Liste der Baugruppen, die zu Ihrem Projekt hinzugefügt wurden. Diese Baugruppen enthalten die Klassen, die von Ihrem Spiel verwendet werden.
Wenn Sie sich die Klassendefinition von Game1 ansehen, werden Sie feststellen, dass sie von der Klasse „Microsoft.Xna.Framework.Game“ abgeleitet ist, die von der Assembly „Microsoft.Xna.Framework.Game.dll“.NET stammt.
Die Game Class definiert ein paar Eigenschaften und Methoden, die Sie in Ihrer eigenen GameClass überschreiben werden, um die Logik Ihres Spiels zu implementieren. Die Methoden, die Sie überschreiben werden, werden wir im Folgenden erläutern.
Der Constructor.
Im Constructor der Game Class wird ein neuer GraphicsDeviceManager erstellt, der dieses Spielobjekt als einzigen Parameter übergibt.
Der GraphicsDeviceManager ist verantwortlich für die Erstellung des GraphicsDevice-Objekts, mit dem Grafiken auf dem Spielbildschirm dargestellt werden.
Nachdem Sie das Objekt GraphicsDeviceManager erstellt haben, gibt es zwei Möglichkeiten, auf das Objekt GraphicsDevice zuzugreifen. Sie können die GraphicsDevice-Eigenschaft der Game Class verwenden oder Sie können auf die GraphicsDevice-Eigenschaft des gerade erstellten GraphicsDeviceManager zugreifen.
Die Game Class erstellt auch ein ContentManager-Objekt, das über die Content-Eigenschaft der Game Class zugänglich ist. Der ContentManager wird verwendet, um Inhalte in Ihr Spiel zu laden. Im Constructor der Game Class1 wird das Basisverzeichnis für Spielobjekte angegeben. Dieser Ordner ist relativ zur ausführbaren Datei des Spiels.
Die Initialisierungsmethode.
In Ihrer eigenen abgeleiteten GameClass überschreiben Sie die Initialisierungsmethode. Diese Methode wird verwendet, um alle GameComponent(s) oder Spieldienste zu erstellen, die von Ihrem Spiel verwendet werden.
Standardmäßig werden dem Spiel keine Komponenten oder Spieldienste hinzugefügt.
Sie sollten die Initalisierungsmethode nicht verwenden, um Spielinhalte zu laden. Spielinhalte (Bilder, Schriften, Modelle) werden mit der nachfolgend beschriebenen LoadContent Methode geladen.
Die LoadContent Methode.
Eine weitere Methode, die Sie aus der GameClass übersteuern werden, ist die LoadContent Methode. Der Zweck der LoadContent Methode ist es, alle Daten zu laden, die dem Content-Projekt (oder dem Content Sub-Projekt, wenn Sie XNA Game Studio 3.1 verwenden) hinzugefügt wurden. Bilder, Shader, Modelle und Schriften sind alles Assets, die Sie mit dieser Methode in Ihr Spiel laden möchten.
Die Standardvorlage erstellt auch eine Instanz eines SpriteBatch-Objekts, wird aber nirgendwo sonst in der Vorlage verwendet.
UnloadContent Methode.
Die Methode UnloadContent wird verwendet, um Grafikinhalte aus dem Spiel zu entladen. Inhalte, die über den ContentManager geladen wurden, müssen nicht explizit entladen werden, da sie automatisch entladen werden. Nur Inhalte, die direkt von der Disc geladen wurden (z.B. Inhalte, die vom Content-Importer nicht erkannt werden), müssen in dieser Methode entladen werden.
Da kein Content geladen wurde, muss natürlich auch kein Content entladen werden.
Die Update Methode.
Die Update-Methode ist für die Aktualisierung der gesamten Spiellogik verantwortlich. Hier bearbeiten Sie Benutzereingaben, aktualisieren die Position und Ausrichtung von Spielobjekten (einschließlich der Kamera), führen eine Kollisionserkennung für Ihre Physiksimulation durch und fügen möglicherweise Spielkomponenten hinzu und entfernen sie aus der Komponenten-Sammlung Ihres Spiels.
Standardmäßig prüft das Spiel nur, ob die Zurück-Taste auf dem ersten am PC angeschlossenen Spielfeld gedrückt wurde. Wenn ja, wird das Spiel beendet. Wenn Sie das Spiel auch durch Drücken der Escape-Taste auf Ihrer Tastatur beenden möchten, können wir diese Methode ändern, um auch zu überprüfen, ob das Escape-Zeichen gedrückt wird.
In dem Code wurde eine zusätzliche Bedingung hinzugefügt, die überprüft, ob die Escape-Taste auf der Tastatur gedrückt wurde. Das hinzufügen dieser Zeile ermöglicht es Ihnen, das Spiel zu
beenden, wenn entweder die Zurück-Taste auf dem Spielfeld oder die Escape-Taste auf der Tastatur gedrückt wird.
Die Draw Methode.
Die letzte Methode, die Sie überschreiben sollten, ist die Draw-Methode. In der Draw-Methode rendern Sie alle Spielobjekte auf dem Bildschirm. Das Rendern von zeichnungsfähigen Objekten wird in einem späteren Tutorial behandelt.
Die Standardvorlage löscht den Bildschirm einfach mit dem GraphicsDevice-Objekt in Kornblumenblau.
Schlußfolgerungen.
Das Ziel dieses kurzen Tutorials war es, Sie mit dem XNA-Framework vertraut zu machen und Sie bei der Erstellung eines neuen Projekts zu unterstützen.
Wir hoffen, dass Sie einen ersten kleinen Einstieg in die Thematik finden konnten.
Vielen Dank für Ihren Besuch.