Köra XNA Framework i Silverlight


Min kollega Dag König tipsade mig om detta idag och det var för bra för att släppa innan jag går och lägger mig för natten. Tydligen så har Bill Reiss inte kunnat vänta på en eventuell portning av XNA Framework till Silverlight utan istället valt att implementera en egen lösning som han kallar för SilverSprite.

Med hjälp av hans lösning kan du skapa ett Silverlight-projekt, länka dina källkodsfiler från ett befintligt XNA Framework-projekt och med hjälp av #if SILVERLIGHT se till att ersätta alla referenser till Microsoft.Xna.Framework till SilverArcade.SilverSprite. Sedan lägger du till ett element som instansierar din Game-klass i Silverlight-applikationen, exempelvis så här:

<UserControl x:Class="SnakeGameSilverSprite.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:SnakeGame">
    <Grid x:Name="LayoutRoot" Background="White">
        <Canvas>
            <game:Game1 x:Name="game"/>
        </Canvas>
    </Grid>
</UserControl>

Naturligtvis behöver du också flytta över det innehåll (content) som spelet använder till Silverlight-projektet, och sedan kan du alltså kompilera ditt spel både för PC, Xbox, Zune och Silverlight…

Hur coolt är inte det?

Ett av de spel som finns publicerade med hjälp av den här tekniken är SilverPopper vilket kan provas på här!

Comments (3)

  1. Smetad Anarkist says:

    Silverlights styrka ligger helt klart i det faktum att Microsofts utvecklingsverktyg är bättre än alla andras. (min egna åsikt)

    Men jag tror ändå, för att Silverlight ska slå ännu hårdare mot Flash så behöver ni göra en Silverlight Express att komplettera Visual Web Developer med. Då når ni ut till så otroligt mycket flera utvecklare.

    Fast det kan ju vara så att jag helt enkelt inte begripit att det går att utveckla silverlight i någon av studio express programmen.

  2. rfolkes says:

    Det går alldeles utmärkt att installera och köra Silverlight 2 Tools tillsammans med Visual Web Developer 2008 Express (med SP1).

    Läs mer här: http://www.microsoft.com/downloads/details.aspx?familyid=C22D6A7B-546F-4407-8EF6-D60C8EE221ED&displaylang=en

    Mvh Robert