非动作类游戏,一般对实时性要求不高,一般有几种事件:
1、快速的事件,几秒钟或者十几秒发生一次;
2、慢速事件,几分钟或者几十分钟触发一次,时间间隔相对固定;
3、定时事件,一般是中午12点或者晚上6点,发体力或者做活动;
4、集中事件,一般是活动,比如答题什么的,这种一般还是手动操作,没必要机器做:
1重复度不高,2时间较短,3复杂度高,当然非得要机器做也可以,等价于定时事件包含快速事件或慢速事件;
5、随机事件或突发事件
按键精灵9+大漠插件
一种框架是一个事件开一个线程,优点是无脑,缺点是每个线程需要绑定一次图形插件,且需要自定义互斥量结构(保护临界资源鼠标和键盘,实现某项操作时一般有连续的鼠标键盘操作,不能错序或者中断,当然如果你非要写个操作栈将当前状态入栈,类似linux进程切换一样,也是可以的)。
另一种框架开两个线程,类似不带操作系统的简单单片机程序,一个主循环,一个辅循环(单片机中断源)
,相当于一个监察者,一个执行者,监察者轮询事件容器中事件是否触发,若是其中有事件触发,则等待执行者当前事务完成,然后交给执行者去完成,执行者完成任务后若是没有接到下一个任务,则执行默认任务(快速事件)。
两个循环最好在两个线程,逻辑会比较清晰,如果非得要单线程,也是可以的。
//---------------------------------------------------------------------------------------------------------/
伪代码: