1

我正在设计一款游戏,并考虑使用 WPF 制作基本游戏玩法的简单原型。

是否可以在 WPF 中实时渲染基本的 2d 图形?基本图形是指简单的形状,例如线条、圆形等。“实时”是指根据速度、加速度等参数渲染事物,这些参数会根据玩家输入而变化——我认为这意味着我可以不要为动画使用故事板。

谢谢

4

1 回答 1

9

查看上一个问题High Performance Graphics using the WPF Visual Layer以获得很好的相关讨论。虽然 WPF 为丰富的矢量图形提供了一个很好的框架,但它在实时 2D 性能方面有些欠缺。

有一些变通方法,例如,根据您的场景复杂性,您可以使用DrawingVisuals或虚拟化 Shape 类(WPF 矢量图形)来绘制您的精灵。再低一点,您可以使用.NET4.0 中可用的BitmapCache模式缓存精灵,或者将它们预呈现到位图并使用各种优化模式来提高吞吐量。

再低一点,您可以使用神奇的WriteableBitmapEx项目混合矢量/光栅图形,或使用D3DImage混合矢量/GPU 图形。

关于如何更新场景,您需要编写一个原始游戏引擎,在CompositionTarget.Rendering事件(在屏幕重绘时触发)上,您可以获得更新的参数并计算精灵的位置/方向。可能对此有所帮助的是这个伟大的codeplex 项目,它集成了 WPF/Silverlight 和 Farseer 物理。

于 2012-05-13T13:20:43.317 回答