游戏中资源重复利用的设计思路 - chunlieater/chunlifeet GitHub Wiki
-
如果游戏中有些资源是可以重复使用的,比如玩家排队的房间,或者定时调用的方法,都可以封装在一个模型里,再建立一个使用字典和闲置堆栈,就可以对这种模型进行重复使用了。
-
具体例子:
- 实现排队房间的重复利用。
- 当新用户开始进行排队时,首先判断使用字典里的房间是否有空位,如果有就让用户进入该房间,如果使用字典里么有房间或者都满员,那就让用户去闲置堆栈查看是否有闲置的房间,如果有就弹出一个给该用户使用,如果没有,那就需要给用户新建一个新的房间了。房间号按照新建时的index值递增,保证其编号的唯一性,如果房间满园或者最后一个用户离开该房间,则系统回收这个房间,把房间数据清空并塞入闲置堆栈。 2.实现定时调用不同的方法。
- 把方法最为一个委托变量传入一个模型中,并且建立该模型的使用字典和闲置堆栈,还有删除队列,当需要加入新的方法模型时,首先看闲置堆栈中是否有可用的模型,如果有就弹出,把委托加入模型后,再把模型加入使用字典,则系统在定时调用字典时,就会根据字典中的模型里定义的使用时间判断哪些模型中的方法需要在本次调用中执行并把id加入到删除队列中,在系统下次调用字典时,先把删除列表中记录id的模型从字典中删除,并初始化模型再加入到闲置堆栈中,供后来的委托传入用。