事件处理方案

http://www.cnblogs.com/yaoyansi/articles/1837679.html

 

http://www.gamedev.net/topic/605016-general-design-of-game-event-system/

 

游戏事件系统的一般设计方法

问:

 我在寻找一种游戏简单的事件系统设计方法指导。我已经利用了观察者/监听者模式来对一个事件队列产生处理。

我的问题是,为了在完整游戏循环中通过顺序的处理产生事件的几个阶段,用户输入,物理事件/运动,游戏状态新号等,

我认为有几个选项,

1) 容忍消息的延迟,将新旧消息排成队列,只进行一次消息处理,

2) 事件管理器在一次循环中进行多次处理tick

3) 可以将新发生的事件附加在事件队列中

4) 选择性的触发事件

5) 混合

6) 其他

我总结出到一种通用的并且可以很容易与远程玩家兼容的一种方式。

 

 

标准的做法是将事件分为两类: 事件通知和状态改变,

事件通告对于事件要求不严格,例如,“喂,xyz 发生了,当你有能力去做的时候去应答”这对,AI,物理,

其他形式的模拟很管用,因为它们没必要每个事件都运行。通常你使用事件队列。

 

对于状态改变而言,你必须即可进行处理,因为它直接影响这游戏模拟的状态,这包含用户输入,应答AI即事件通告,等等。

任何在下一帧可以被观察到的都应视作状态改变。通常状态改变是直接相应的。call back 函数为这一类。

 

这将为多线程处理带来的优点。例如,事件通知将被独立在每个线程中,然后被汇总到最后的分发。

状态改变通常需要额外的处理,如果你已经对其进行分开处理,那么将会简单许多。

你可能感兴趣的:(多线程,游戏)