我想问一下我是否想在我的将在 Windows Phone 上运行的 2D Silverlight 游戏(像蛇这样的示例游戏)中创建一个游戏循环来控制运动,这样做的最佳做法是什么?我发现使用了不同的方法:1- CompositionTarget.Render()。2-调度定时器。3层板。
哪个更适合创建示例游戏循环?
我想问一下我是否想在我的将在 Windows Phone 上运行的 2D Silverlight 游戏(像蛇这样的示例游戏)中创建一个游戏循环来控制运动,这样做的最佳做法是什么?我发现使用了不同的方法:1- CompositionTarget.Render()。2-调度定时器。3层板。
哪个更适合创建示例游戏循环?
Windows Phone 上的 XNA 游戏循环基于 Silverlight 的 Dispatcher Timer。所以它绝对适合这种目的。
在您列出的方法中,DISpatcher Timer 是创建游戏循环的最佳方法。
但是,如果您想创建游戏,我强烈建议您不要使用 Silverlight,而是使用 XNA API,即使对于像 Snake 这样的简单游戏,使用游戏架构编写游戏要容易得多,Silverlight 专为事件驱动应用程序而设计(普通应用程序)和 XNA 专为游戏设计(更新逻辑,然后在 GPU 上绘制 2D 或 3D 图像)。此外,如果您坚持使用 Silverlight,除非您使用使用合成线程的情节提要,那么您的绘图都不会是硬件加速的,并且会真正降低应用程序的性能。
此外,如果您专门针对 Windows Phone 8,您可以创建 Direct3D 应用程序并使用 DirectX 工具包在 C++ 中获取“xna”spritebatch 类。使用该方法会自动为您设置游戏循环和 2D 绘图代码。