守望先锋是一款非常火爆的FPS加MOBA的融合类游戏,游戏的人物设定精致,游戏玩法惊险刺激,与此同时市场价也不是很高,一经推出就拿到了很大的热烈欢迎。有很多小伙伴不清楚守望先锋地图工坊教程,一起来看看地图工坊如何使用。
《守望先锋》地图工坊教程
本文的目标用户,是已经有一定地图工坊撰写经验的朋友们。假如你并不是很了解,推荐你阅读文章别的教程。比如:
[零基础入门教程]
[在地图工坊中从零开始造就“穿越火线生化”]
前言
相较于一门计算机语言而言,地图工坊的功效其实很基本。本身没有函数公式,更不用说类了。但是,不知道你是否留意到,不断事情有一个特点:它能够持续等候,直至标准是真实的。
程序编写里面有一个“程序设计模式”,称为“观察者模式”。它的意思是:当一个目标发生变化时,就会自动通告依靠它目标。
说到这里,不知道你们有没有感觉,不断相关事件观察者模式是有一定共同之处的:它们是在“等”一个东西。
简单化标准
这东西有什么作用?大家可以借此来简单化标准的编写。比如,想要做一个等级系统,当经验做到100时就升一级,身亡时就掉50%经验,假如经验是受了,就掉了一级。
我们自己的经验由来很有可能不止一种,比如在RPG模式里,大家击杀敌人会获得经验,催毁防御塔也能获得经验。在我们按照传统方法写规矩的情况下,我们就要:
击杀敌人:提升经验,假如经验>100,提升级别,改动级别BUFF
催毁防御塔:提升经验,假如经验>100,提升级别,改动级别BUFF
身亡:降低经验,假如经验<0,降低级别,改动级别BUFF
你有没有感觉,这是一个繁琐的过程?当你需要改动级别BUFF时,你需要修改许多条标准。
咱们就分析一下我们自己的逻辑性:事实上,级别在哪一天提升,提升会起不到什么作用,这并非是咱们的“身亡”事情该处理。
最好的办法是:有一个东西在“看见”经验,当它们超过100时,就表明更新了。当它们低于100时,就表明降权了。我们将其耦合后,标准就会变成:
击杀敌人:提升经验
催毁防御塔:提升经验
身亡:降低经验
观测者1:假如经验>100,提升级别,改动级别BUFF
观测者2:假如经验<0,降低级别,改动级别BUFF
换成游戏内标准,就是:(假定用游戏玩家自变量A表明级别,游戏玩家自变量B表明经验)
击杀敌人:改动游戏玩家自变量(事情游戏玩家, B, 加, 50)
催毁防御塔:改动游戏玩家自变量(事情游戏玩家, B, 加, 30)
身亡:改动游戏玩家自变量(事情游戏玩家, B, 减, 50)
观测者1
事情:不断 - 每名玩家
标准:游戏玩家自变量(事情游戏玩家, B) >= 100
姿势:
改动游戏玩家自变量(事情游戏玩家, B, 减, 100)
改动游戏玩家自变量(事情游戏玩家, A, 加, 1)
// 这儿写级别转变的思路
等候(0.016, 忽视标准)
如条件为“真”则循环系统
观测者2
事情:不断 - 每名玩家
标准:游戏玩家自变量(事情游戏玩家, B) < 0
姿势:
改动游戏玩家自变量(事情游戏玩家, B, 加, 100)
改动游戏玩家自变量(事情游戏玩家, A, 减, 1)
// 这儿写级别转变的思路
等候(0.016, 忽视标准)
如条件为“真”则循环系统
留意:
一定要注意数字逻辑上不能存有无限循环,比如上面的例子里,观测者2的前提条件写不出来“游戏玩家自变量 <= 0”。由于如果玩家经验=100时,观测者1会将其变成0,就会触发观测者2。而观测者2又再度开启观测者1。这就导致无限循环的诞生。
大家在2个观测者最终都加了循环系统,目的是为了摆脱条件满足的现象。考虑到这样的事情:在我们一次性为玩家提升300点经验时,按道理说,应当令小伙伴们升3级,但只要我们并没有循环系统,游戏玩家上升了一级就没有了,而且后面提升经验,就不会再开启更新。只有在条件满足打破时,标准再度达到,才能再度开启该标准。
仿真模拟函数调用
程序编写一直在所难免函数公式,但目前为止OW里没有函数公式。可是,我们可以用以上方法,模拟函数公式。
最好用上面的例子。你就会发现我们自己的级别转变逻辑性或是写了两遍。可不可以再将其单独成一个标准?当然是可以的。大家转变的目的是游戏玩家,因此我们需要使用一个游戏玩家自变量,来标识大家要不要对于此事游戏玩家实行级别转变逻辑性。假定使用游戏玩家自变量C。
最先,在游戏复位时,把它设定为假。我们自己的标准就可以变成:
观测者1
事情:不断 - 每名玩家
标准:游戏玩家自变量(事情游戏玩家, B) >= 100
姿势:
改动游戏玩家自变量(事情游戏玩家, B, 减, 100)
改动游戏玩家自变量(事情游戏玩家, A, 加, 1)
等候(0.016, 忽视标准)
如条件为“真”则循环系统
设定游戏玩家自变量(事情游戏玩家, C, 真)
观测者2
事情:不断 - 每名玩家
标准:游戏玩家自变量(事情游戏玩家, B) < 0
姿势:
改动游戏玩家自变量(事情游戏玩家, B, 加, 100)
改动游戏玩家自变量(事情游戏玩家, A, 减, 1)
等候(0.016, 忽视标准)
如条件为“真”则循环系统
设定游戏玩家自变量(事情游戏玩家, C, 真)
级别变化规则
事情:不断 - 每名玩家
标准:游戏玩家自变量(事情游戏玩家, C) == 真
姿势:
// 这儿写级别转变的思路
设定游戏玩家自变量(事情游戏玩家, C, 假)
留意:这里只是仿真模拟函数调用,可事实上比函数公式还是别好多东西。因而,并非所有状况都很适合这么写。
汇总
文中其实没有用哪种很奇奇怪怪的技术性,但本文的难点是思维的变化:你需要把好多个原本有所不同的逻辑性,找到他的相同点,并巧妙的将其拆分成好几个逻辑性,随后用规则来完成。
该不该应用这种方式来设计原则?你应该考虑它优缺点。最大的优点有:
将反复内容独立出来,提高工作效率。
方便以后修改(不但需要修改的区域减少了,漏改动的概率也小很多了)
它也有缺点:
增强了标准总数。
增强了逻辑上的复杂性。
使用效率略低。
个人觉得,适度的应用这种思路来设计原则,能够减少你工作量与维护难度系数。但并不意味着这种方法一定就是很好的,你应当考虑你的具体情况。