CompositionTarget.Rendering事件是构建游戏主循环的完美之处。它基本上以vsync的速率(通常为60 Hz)触发。在CompositionTarget.Rendering中可以做什么?
发生就在之前,合成树中的对象被渲染。在将动画和布局应用于合成树之后,渲染事件将路由到指定的事件处理程序。
per-frame animation how-to文章解释了一点点。
请注意,您的事件处理程序方法在计算布局后调用。但是,您可以在事件处理程序方法中修改布局,这意味着布局将在渲染之前再次计算。
此基础上,它的处理器内部代码的规则是:
- 避免更改布局
- 返回快速
什么其他的陷阱有哪些?什么非显而易见的操作会导致另一个布局传递?我在处理程序中究竟有多少时间?
我很清楚所有这一切,我仍然想在WPF中制作游戏。 –
@AnsisMalins为什么?根据定义,这种方法是不合适的。如果您在需要使用螺丝刀时使用小刀,请不要感到惊讶,如果您滑动并割伤手。 – Basic