守望先锋地图工坊应用观察者模式思想教程 地图工坊进阶教程


守望先锋地图工坊应用观察者模式思想教程 地图工坊进阶教程


之前我们为大家带来了守望先锋地图工坊的零基础入门教程 , 而今天 , 为大家带来的是玩家“泷涯”编写的守望先锋地图工坊进阶教程 , 一起来看看吧 。
【守望先锋地图工坊应用观察者模式思想教程 地图工坊进阶教程】
守望先锋地图工坊应用观察者模式思想教程 地图工坊进阶教程


推荐阅读:
守望先锋地图工坊零基础入门新手教程
守望先锋地图工坊应用观察者模式思想教程
本文的目标对象 , 是已经有一定地图工坊编写经验的朋友 。如果你并不熟悉 , 建议你阅读其他教程 。
引言?
相对于一门编程语言来说 , 地图工坊的功能其实非常基础 。它没有函数 , 更别提类了 。不过 , 不知道你是否注意到 , 持续事件有一个特性:它可以持续等待 , 直到条件为真 。
编程里面有一个“设计模式” , 叫做“观察者模式” 。它的意思是:当一个对象变化时 , 会自动通知依赖它的对象 。
看到这里 , 不知道你有没有觉得 , 持续事件和观察者模式是有一定相似之处的:它们都是在“等”一个东西 。
简化规则
这个东西有什么用?我们可以借此来简化规则的编写 。例如 , 我们要做一个等级系统 , 当经验达到100的时候就升一级 , 死亡的时候就掉50%经验 , 如果经验是负了 , 就掉一级 。
我们的经验来源可能不止一种 , 例如在RPG模式里 , 我们击杀敌人可以获得经验 , 摧毁防御塔也可以获得经验 。当我们用传统办法写规则的时候 , 我们就需要:
1.击杀敌人:增加经验 , 如果经验>100 , 增加等级 , 修改等级BUFF
2.摧毁防御塔:增加经验 , 如果经验>100 , 增加等级 , 修改等级BUFF
3.死亡:减少经验 , 如果经验<0 , 减少等级 , 修改等级BUFF
你有没有觉得 , 这是一个繁琐的过程?当你需要修改等级BUFF的时候 , 你需要修改很多条规则 。
我们再分析一下我们的逻辑:实际上 , 等级什么时候会增加 , 增加会有什么效果 , 这并不是我们的“死亡”事件该处理的 。
正确的做法是:有一个东西在“看着”经验 , 当它大于100时 , 就代表升级了 。当它小于100时 , 就代表降级了 。我们将其解耦后 , 规则就变成了:
1.击杀敌人:增加经验
2.摧毁防御塔:增加经验
3.死亡:减少经验
4.观察者1:如果经验>100 , 增加等级 , 修改等级BUFF
5.观察者2:如果经验<0 , 减少等级 , 修改等级BUFF
守望先锋地图工坊应用观察者模式思想教程 地图工坊进阶教程


换做游戏内规则 , 即是:(假设用玩家变量A表示等级 , 玩家变量B表示经验)
1.击杀敌人:修改玩家变量(事件玩家, B, 加, 50)
2.摧毁防御塔:修改玩家变量(事件玩家, B, 加, 30)
3.死亡:修改玩家变量(事件玩家, B, 减, 50)

观察者1
1.事件:持续 - 每名玩家
2.条件:玩家变量(事件玩家, B) >= 100
3.动作:
修改玩家变量(事件玩家, B, 减, 100)

推荐阅读