【发布时间】:2008-09-15 15:30:25
【问题描述】:
我已经有大约 10 年没有编程游戏了(我的最后一次经历是 DJGPP + Allegro),但我想我会在周末去看看 XNA 看看它是如何形成的。
我印象深刻,但是当我继续拼凑游戏引擎时,我有一个(可能)基本问题。
您应该在多大程度上依赖 C# 的委托和事件来推动游戏发展?作为一名应用程序员,我大量使用委托和事件,但我不知道这样做是否会产生很大的开销。
在我的游戏引擎中,我设计了一种“追逐凸轮”,它可以附加到一个物体上,然后重新计算它相对于物体的位置。当物体移动时,有两种方法可以更新追逐镜头。
- 在主游戏循环中有一个“UpdateCameras()”方法。
- 使用事件处理程序,并让追踪摄像头订阅 object.OnMoved。
我使用后者,因为它允许我将事件链接在一起并很好地自动化引擎的大部分。突然之间,原本庞大而复杂的事情变成了少数 3 到 5 行的事件处理程序……真是太棒了。
但是,如果事件处理程序每纳秒触发一次会导致严重的减速,我将删除它并采用循环方法。
想法?
【问题讨论】: