Silverlight中2D游戏的最佳实践

Silverlight中2D游戏的最佳实践,silverlight,windows-phone-7,2d,Silverlight,Windows Phone 7,2d,我目前正在开发一款类似旅鼠的2D游戏。我只使用Silverlight为WindowsPhone7开发它。我选择Silverlight有两个原因: 我使用XAML创建(d)我的图形,这样图像就不必缩放 我可能想稍后将我的游戏移植到Windows Phone 8(它不支持用C#编写的XNA游戏) 有人在使用XAML图形方面有什么最佳实践吗?例如,保持图形轻量级的最佳方法。 我的另一个问题是,我没有“心跳”来实现游戏功能。换句话说,我没有XNA拥有的“绘制”和“更新”方法。我应该只是一个计时器吗?

我目前正在开发一款类似旅鼠的2D游戏。我只使用Silverlight为WindowsPhone7开发它。我选择Silverlight有两个原因:

  • 我使用XAML创建(d)我的图形,这样图像就不必缩放
  • 我可能想稍后将我的游戏移植到Windows Phone 8(它不支持用C#编写的XNA游戏)
有人在使用XAML图形方面有什么最佳实践吗?例如,保持图形轻量级的最佳方法。
我的另一个问题是,我没有“心跳”来实现游戏功能。换句话说,我没有XNA拥有的“绘制”和“更新”方法。我应该只是一个计时器吗?那是哪一个呢

虽然它不能直接回答您的问题,但我建议不要将silverlight用于任何琐碎的游戏

我建议您使用更适合游戏的东西,如:


这与XNA完全一样,适用于Windows Phone 8,也适用于iPhone、android和许多其他平台。

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

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

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

  • 减少XAML代码的数量
  • 如果使用动画,请尝试仅使用可以在(GPU加速)上运行的动画
  • 了解如何使用位图缓存等
  • 使用和内存以及
  • 在真实设备上进行测试,最好是第一代设备,以确保其平稳运行。emulator并没有提供多少关于它将如何在真实设备上运行的信息
我还发现了一些对提高性能非常有用的好链接:


其实我早就料到会有这样的答案。你有没有网站解释为什么我应该选择XNA而不是Silverlight?XNA直接使用底层硬件加速。虽然Silverlight是硬件加速的,但很难控制它。XNA是为游戏(gameloops、sprites、3d等)而设计的,而silverlight是为UI(基于事件、标记、高层等)而设计的。在silverlight上,你可以看到十几个小精灵的性能还可以,但是对于像旅鼠这样的游戏,你需要很多精灵来对付所有的旅鼠,粒子引擎来处理爆炸和可变形的背景,silverlight就是不能做到&