Krähenjagd - mal anders

Bei den zwei vorliegenden Versionen der "Krähenjagd - mal anders" handelt es sich mehr um eine Studie zum Thema Silverlight bzw. Silverlight und XNA als um ein perfektes Online-Game.

Trotz der sehr einfachen "Animation" ist das Spiel wegen der ungewöhnlichen Konstellation der beteiligten Parteien trotzdem spielenswert.

Aber sehen Sie selbst:

Krähenjagd - mal anders I - (Hierbei handelt es sich um eine reine Silverlight-Version)

Bei der folgenden Version der Krähenjagd handelt es sich um ein XNA Projekt welches mit Hilfe von Silversprite nach Silverlight portiert wurde.

So gehen Sie vor:

Link klicken Krähenjagd - mal anders!, in das Bild klicken. Pfeiltasten Links bzw. Rechts - Rotation, Space - Schuss und "A, W, S, D" - Bewegung.

 

 

XNA to Silverlight

Silversprite

Mit Silversprite ist es möglich XNA - Spiele auf Silverlight zu portieren. Es sind keine Änderungen am Code notwendig, da Silversprite Teile des XNA- Framewoks wrappt.

Momentan werden nur 2D - Spiele unterstützt und hier wohl auch nicht alles komplett. Da die Entwicklung ständig weiterläuft sollte man sich über den Stand der Dinge auf der Silverlight- Projekseite informieren.
Beim Portieren des Codes mit Hilfe von Silversprite nach Silverlight sind trotzdem einige Dinge zu beachten und da das Projekt meiner Meinung nach trotz seiner brillianten Idee äusserst knapp beschrieben ist, möchte ich einmal zusammentragen wie ich mein XNA Game nach Silverlight portiert habe.

XNA Games nach Silverlight portieren

1. Neues Silverlightprojekt erstellen.

2. Alle Sourcen aus dem XNA Game bis auf "Program.cs" in das neue Silverlightprojekt hinzufügen.

3. Überall im Code Microsoft.Xna.Framework mit SilverArcade.SilverSprite ersetzen (alle Using - Direktiven + in der Game-Klassendefinition).

4. Download des aktuellen Sourcecode von hier + entpacken.

5. Im Root Ordner SilverSprite.sln starten. Eventuelle Fehlermeldungen wie "permanently remove the source control bindings" kann man mit -> no bestätigen.!

6. Projekt kompilieren. Build - Errors sollte man so begegnen können -> "build errors - last succesful build" -> yes
Unter: SilverArcade.SilverSprite\Bin\Debug die dll "SilverArcade.SilverSprite.dll" kompilieren

7. Diese SilverArcade.SilverSprite.dll in das Silverlight-Projekt als Referenz einfügen

8. in Page.xaml: Projektname + Namespace anpassen + Game-Klasse einfügen.

<UserControl x:Class="SilverlightProjektname.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300" xmlns:game="clr-namespace:Namespace">
<Grid x:Name="LayoutRoot" Background="White">
<Canvas>
<game:Game1 x:Name="game"/>
</Canvas>
</Grid>
</UserControl>

9. Content vorbereiten: Aus allen Files ( jpg / png / tga ) xnb Dateien erstellen. Dazu im XNA Game unter der
jeweileigen Datei unter Properties "Build Action" "Compile" einstellen. Unter den Project - Properties - muß unter "Content Build" die Komprimierung deaktiviert sein. Dies sind Standardeinstellungen - im Debug Modus!
Kompilieren! XNB - Files befinden sich nun unter: xna_game\bin\x86\Debug\Content\Sprites.

10. Ordnerstruktur wie im XNA Game aufbauen "Content/Sprites etc. Content (xnb files) hinzufügen und dann unter Properties
"Build Option" - "Content" wählen.

Fonts müssen auch "händisch" dem Prjekt hinzugefügt. Hier muß auch im Silverlight-Projekt bei "Build Action" -> "Content" eingestellt sein.

Sound-Dateien werden ebenfalls per Hand dem Silverlightprojekt hinzugefügt und "Content" unter "Build Action" aktiviert.
Zu beachten ist, das momentan nur MP3 und WMA- Dateien unterstützt werden.

Kompilieren - fertig!

Weitere Konvertierungsmöglichkeiten sollte man sich unter der Projektseite von Silversprite anschauen.