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, 0,
graphicsDevice.Viewport.Width,
graphicsDevice.Viewport.Height),
Color.White);
spriteBatch.End();
// 强制刷新
e.InvalidateSurface();
}
注意: 承载他的页面必须有这么一句
<param name="EnableGPUAcceleration" value="true" />