|
发表于 2013-8-29 00:43:44
|
显示全部楼层
meigo 发表于 2013-8-28 20:05
设计回调点其实并不是一个聪明的做法。
实际上在立项之初,就应该规划好游戏系统类型和任务类型以及对象类 ...
你说的还是基于中间Tag机制的依赖调用,例如你说到击杀怪物,怪物有一个标签E_fire_human_a,逻辑传递是这样的
回调点(击杀怪物的时候,战斗系统产生) ----> 中间机制(E ,fire , human,a 4个按照分隔符Tag的更新) -----> 任务系统(对标签对应的任务进行刷新)
其实你刚才描述的是任务系统的刷新组织规则.我换一种角度理解和扩展下,就是任务带有tag触发的与操作.这样任务系统的每个任务的一个子目标,会在对应的tag全部触发时候才计算,
举个例子,以你的例子为例,假设你要击杀a怪物10只,实际上你的任务的目标是 "E" and "a" 全触发,进行更新计算. 假设我杀了一个E_fire_human_a,这时候这个怪物触发了4个tag : "E" "fire" "human" "a",这时候你的任务的"E" 和 "a" tag都触发,并且"a" tag的计数增加1.那你的任务就会刷新,同样你杀E_water_human_a,也会刷新这个任务.另外如果有一个任务目标叫"E" and "fire" and "a",你杀了E_fire_human_a,由于同时满足3个tag触发,这个任务也会刷新.
后面的药水也是一样,如果你需要在战斗系统获得蓝药水触发,那你的tag 就是 "E" and "blue",那么战斗获得的"E_blue" 会触发,而"Q_Blue"就不会触发,但如果有一个任务目标,让你通过任何系统只要获得一个蓝药水就可以,那这个任务的tag 仅仅就是"blue",这时候"E_blue" , "Q_blue","W_blue" 都可以触发. |
|