这一部分,我们介绍一种在点或区域持续刷新创建单位的方法
在【自定义单位的设置与摆放】中,我们介绍了自定义单位的创建与更改属性的方式,以及在场景放置单位的方法。
而在地图中,我们经常需要对单位进行操作。
最基本的动作指令是在地点创建单位。可以选择【单位-创建单位】,如图所示。
通过填写触发器的条件,我们可以在多种情形下创建单位。
这里,出于地图中的实际需求,我们介绍一种批量管理,在多个点或区域持续刷新单位的方法。
我们需要解决的问题是生成地图上的怪物。具体而言,是在对应的刷怪开关开启时,各个区域以指定的周期(间隔时间),在指定的点或区域,不断刷新指定类型的单位。
考虑到地图上的怪物不应该是无限制刷新,我们应该给刷新的怪物设定数量上限。
此外,我们需要对通过这种方法创建的每一组单位进行统一管理。
因此,我们一共设置8个变量。
SpawnerNum——整数,单个(single),用来表示管理的区域数量
SpawnerFrequency——整数,数组,用来管理每个区域内怪物的刷新周期,需要设置初值
InitialFrequency——整数,数组,用来初始化SpawnerFrequency的值
SpawnerMonsterGroups——单位实体组,数组,用来管理每个区域内刷新的所有怪物
EnableSpawners——布尔,数组,用作每个区域的开关
MaxMonsters——整数,数组,用来设定每个区域的怪物上限
SpawnerMonsterTypes——单位名字,数组,用来设定每个区域刷新的怪物类型
MonsterSpawners——圆形区域,数组,用来设定每个刷新怪物的区域
具体的编辑方式如下:
首先,创建所有变量,如图所示
我们需要使用4个基本触发器,分成两个触发器组,如图所示。
其中第一个触发器组设为开启,包含1个触发器【初始化野怪发生器】
第二个触发器组设为禁用,包含3个触发器【初始化并设置怪物组】、【野怪组刷新1只怪】、【野怪组去除死亡怪】
【初始化野怪发生器】用于在游戏初始化后,管理每个区域内怪物的参数,设置初值
【初始化并设置怪物组】用于在游戏开始时即在相应区域创建若干个单位
【野怪组刷新1只怪】用于对于管理的各个区域,独立地在每个周期刷新1只怪,直到上限
【野怪组去除死亡怪】用于把死亡的怪物从怪物组中去除,这样可以继续刷新怪物。
以12个区域为例,各触发器分别如下:
1、【初始化野怪发生器】
首先在游戏初始化时发送触发事件
接下来,对各个区域设置一些基本的初值,包含怪物类型、最大数量、刷怪区域、初始开关等,如图
最后,发送初始化刷怪触发器的事件,并把另外2个触发器从禁用打开。
2、【初始化并设置怪物组】
对于初始开启的区域,在地图上直接把怪物在区域内随机点刷新。如图所示。
3、【野怪组刷新1只怪】
这里在一个基本的时钟周期T(本处设置的是0.5)下,让各个区域以(自身设置的频率*T)的周期不断刷怪,直到数量达到上限,并对怪物组的怪物施加AI。如图所示
4、【野怪组去除死亡怪】
这里,对于各个怪物组进行检测,如果有怪物死亡,就把死亡单位从怪物组中删除,如图
此外,我们可以在其他触发器中打开或关闭刷怪区域是否刷怪的开关。建议进行统一处理。