|
以下是问题的答复哈。
Q:1.事件的广播是在事件发生时,还是加入等待队列,等待统一广播
A:事件的广播是在事件发生时调用,会广播调用每一个监听了该事件的函数
Q:2.事件的广播是在触发的当前游戏帧还是下一个游戏帧
A:事件的广播发生在当前游戏帧
Q:3.事件的广播开始时,是否立刻调用所有对应的事件处理方法
A:事件广播开始会按照监听的顺序依次调用所有的事件处理方法
Q:4.对于可修改参数的事件广播(例如"DamageEvent"的data['damage']),修改的参数是立刻生效还是所有的处理方法完成后再生效,还是处理完后加入队列等待最终所有时间参数统一处理
A:对于修改了参数的事件广播,如果修改了参数,那么后续的监听方法得到的参数是已经被修改过的参数,待所有的回调函数依次被执行完毕后,会返回给引擎层直接处理
Q:5.事件的广播、时间相关数据的更新是发生在游戏帧update()方法前还是帧后
A:事件的广播和游戏帧的update是分开的,事件是在游戏帧运行到某一时刻触发的,update是按照固定帧率一直执行的
Q:6.若广播回调参数是统一处理,那处理发生在游戏帧update()方法前还是其后
A:同5
Q:7.自定义事件如何使广播出去的参数可修改(例如"DamageEvent"的data['damage'])
A:自定义事件可以自定义数据结构,可以像引擎定义的事件一样直接增加、删除和修改参数都可以
Q:8、在单一游戏帧处理过程中,事件的触发是在 update() 之前还是之后
A:同5 |
|