微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XNA in Silverlight 5.0

 

 

XNA在Silverlight 5.0中变化了,和Silverlight 4.0不一样呢。

Silverlight 4.0中想使用XNA只能是WinPhone7才可以,Silverlight 5.0就不一样了,可以在PC平台上支持XNA开发,也就是说你的网站上可以直接使用XNA开发游戏了!

 

Silverlight 5.0使用XNA超级简单,XAML文件中定义一个DrawingSurface就可以,对应的实现2个函数OnDraw和OnLoaded,然后就结束了。

 

例如:

 

XAML文件中定义一个小DrawingSurface如下:
    <Canvas>
        <DrawingSurface Draw="OnDraw" Loaded="OnLoaded" Width="245" Height="222" Canvas.Left="50" Canvas.Top="86" />
    </Canvas>

 

对应的C#代码中实现2个函数OnDraw和OnLoaded:

        ContentManager contentManager;
        SpriteBatch spriteBatch;
        Texture2D background;

        private void OnLoaded(object sender,RoutedEventArgs e)
        {
            GraphicsDevice graphicsDevice = GraphicsDeviceManager.Current.GraphicsDevice;
            contentManager = new ContentManager(null)
            {
                RootDirectory = "Content"
            };
            spriteBatch = new SpriteBatch(graphicsDevice);
            background = contentManager.Load<Texture2D>("sunset");
        }

        private void OnDraw(object sender,DrawEventArgs e)
        {

            GraphicsDevice graphicsDevice = GraphicsDeviceManager.Current.GraphicsDevice;
            //
            graphicsDevice.Clear(Color.Black);
            // 画一张背景图,盖满 DrawingSurface
            spriteBatch.Begin(0,BlendState.AlphaBlend);
            spriteBatch.Draw(background,
                             new Rectangle(0,
                                 graphicsDevice.Viewport.Width,
                                 graphicsDevice.Viewport.Height),
                             Color.White);
            spriteBatch.End();
            // 强制刷新
            e.InvalidateSurface();
        }


 注意: 承载他的页面必须有这么一句

<param name="EnableGPUacceleration" value="true" />

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐