Silverlight中2D游戏的最佳实践

时间:2012-11-19 20:00:43

标签: silverlight windows-phone-7 2d

我目前正在开始开发类似于Lemmings的2D游戏。我正在使用Silverlight为Windows Phone 7开发它。我选择Silverlight有两个原因:

  • 我使用XAML创建(d)我的图形,因此不必缩放图像。
  • 我可能想稍后将我的游戏移植到Windows Phone 8(它不支持用C#编写的XNA游戏。)

有没有人在使用XAML图形方面有任何最佳做法?例如,保持图形轻量化的最佳方法。 我遇到的另一个问题是我没有“心跳”来放置游戏功能。换句话说,我没有XNA所拥有的'draw'和'update'方法。我应该只是一个计时器,那么它会是哪一个?

2 个答案:

答案 0 :(得分:1)

虽然它没有直接回答你的问题,但我建议不要使用silverlight来做任何事情,除了一个微不足道的游戏。

我建议使用更适合以下游戏的内容:http://monogame.codeplex.com/

这与XNA完全相同,适用于Windows Phone 8,还适用于iPhone,Android和许多其他平台。

答案 1 :(得分:0)

我实际上在XAML中为Windows Phone 7制作了一个简单的游戏。我注意到的问题是性能下降很快。所以,如果你正在做任何先进的事情,XNA和Monogame认为@Toad是个好主意。

在我的游戏中,我使用计时器来更新游戏,这不需要经常运行(大约5-10次/秒),然后在游戏中使用故事板进行大部分动画和动作。但是,如果你能做到这一点,取决于游戏的类型。

关于如何提高游戏性能的更多想法:

  • 减少XAML代码的数量
  • 如果使用动画,请尝试仅使用可在compositor thread上运行的动画(GPU加速)
  • 了解如何使用位图缓存等。
  • 使用frame rate counters和内存以及Performance analysis tool
  • 在真实设备上进行测试,最好是第一代设备,以确保其顺利运行。模拟器没有提供有关它如何在真实设备上运行的信息。

我发现一些更好的链接对提高性能非常有用:

Windows Phone Performance Part 4 of many– The Power of the GPU

Performance Considerations in Applications for Windows Phone