华悦网
当前位置: 首页 >体育 >综合体育 >电子竞技 >守望先锋 >正文

《守望先锋》地图工坊教程:应用观察者模式思想

2020-11-11 01:22    

作者:NGA-泷涯

本文的目标对象,是已经有一定地图工坊编写经验的朋友。如果你并不熟悉,建议你阅读其他教程。例如:[零基础入门教程][在地图工坊中从零开始创造“生化模式”]

引言​

相对于一门编程语言来说,地图工坊的功能其实非常基础。它没有函数,更别提类了。不过,不知道你是否注意到,持续事件有一个特性:它可以持续等待,直到条件为真。

编程里面有一个“设计模式”,叫做“观察者模式”。它的意思是:当一个对象变化时,会自动通知依赖它的对象。

看到这里,不知道你有没有觉得,持续事件和观察者模式是有一定相似之处的:它们都是在“等”一个东西。

简化规则

这个东西有什么用?我们可以借此来简化规则的编写。例如,我们要做一个等级系统,当经验达到100的时候就升一级,死亡的时候就掉50%经验,如果经验是负了,就掉一级。

我们的经验来源可能不止一种,例如在RPG模式里,我们击杀敌人可以获得经验,摧毁防御塔也可以获得经验。当我们用传统办法写规则的时候,我们就需要:击杀敌人:增加经验,如果经验>100,增加等级,修改等级BUFF摧毁防御塔:增加经验,如果经验>100,增加等级,修改等级BUFF死亡:减少经验,如果经验<0,减少等级,修改等级BUFF

你有没有觉得,这是一个繁琐的过程?当你需要修改等级BUFF的时候,你需要修改很多条规则。

我们再分析一下我们的逻辑:实际上,等级什么时候会增加,增加会有什么效果,这并不是我们的“死亡”事件该处理的。

正确的做法是:有一个东西在“看着”经验,当它大于100时,就代表升级了。当它小于100时,就代表降级了。我们将其解耦后,规则就变成了:击杀敌人:增加经验摧毁防御塔:增加经验死亡:减少经验观察者1:如果经验>100,增加等级,修改等级BUFF观察者2:如果经验<0,减少等级,修改等级BUFF

品牌、内容合作请点这里: 寻求合作 ››

榜单

今日推荐