100

主题

161

回帖

1821

积分

管理员

编辑器交流群:656413818

积分
1821

论坛管理

发表于  2023-4-18 16:11:08 | 显示全部楼层 |阅读模式 11879 6
ECA

在了解了触发器的基本架构与使用方法后,在这里,你可以了解到触发器的多层结构以及如何使用触发器实现基本游戏逻辑。

参数设置

参数是触发器语句中需要被开发者赋值的内容。部分语句带参数,这些参数也可以进行修改未被赋值的参数显示为红色,已被赋值的参数显示为绿色,附加选项显示为蓝色。文本信息为当前触发语句的含义。要注意,你需要填写完所有的参数才可以正常使用这条语句。

1

1

赋值种类

如果要对参数进行赋值或更改其当前值,可以鼠标左键单击目标参数,即可弹出编辑界面。编辑器根据参数类型的不同为每种参数提供了四种赋值种类:预设或者值,变量,函数,通用。

预设:参数类型单位装饰物物体特效可破坏物等可以摆放在场景内的摆件时,可以直接选择这些摆件。

2

2


:可以直接为参数赋予一个固定的数字,文字或布尔值(取值仅能为真或假),对类型是整数,实数,字符串和布尔值类型的参数有效

3

3


变量:用于储存或记录数值,参数和结果等。

4

4


函数:函数是一组由官方封装好的,可以直接提供某些特殊参数的语句。函数语句本质上和触发器语句相似,所以很多函数语句也需要填写参数。

5

5


通用:用于设置自定义值以及调用表格编辑器

6

6


参数的复用与变量的转化

右键点击参数或参数外的【】,可以复制粘贴这个参数。当选择“复制“时,会将整个参数的数值和结构赋值到粘贴板,开发者可以将其粘贴给相同类型的参数。

7

7


点击“转化为变量“时,会在当前语句之前创建一个变量赋值语句,你可以创建一个变量将其赋值为所选参数或参数组。

8

8


转化成变量后,你可以点击取消变量转换,恢复到之前的语句。

9

9


变量设置
可以在变量管理中或在编写触发器语句时直接设置变量。

10

10


11

11


变量的作用域
变量根据作用域类型可以分为全局变量局部变量。
全局变量:可以在编辑器任何一条触发器中使用的变量。
局部变量:只能在当前触发器中使用的变量,其他的触发器无法使用。

12

12


变量的属性
可以设置各种类型的变量并为其命名,方便后续的调用,部分的变量类型需要设置初始值

13

13


变量的类型整数浮点数单位等。

14

14


初始值栏可以设置变量的初始值,赋值后初始值会被覆盖。

15

15


数组:数组是一组数据的集合。集合内的变量名字是数组名称数组变量的呈现形式为名称[标号],如单位数组变量Boss[1], Boss[2]。

16

16

17

17


变量的特性
变量只能存储某一个时刻的数值,并不会实时更新。请不要忘记在触发器中编写更新变量的语句。
例如,在游戏运行的时候设置变量“玩家人数”为65分钟后有一位玩家退出游戏,此时游戏中玩家人数为5,如果没有编写变量更新语句,那么变量“玩家人数”依然为6。你需要编写能表达玩家退出游戏的时候玩家人数减1的逻辑。

18

18

19

19


触发器的有效性
可以将编辑好的触发器设为无效,这样该条触发就不会运行了。当需要运行这条触发时,可以重新开启这条触发器。无效的触发既不会影响游戏的逻辑,又可以留待有需要时开启调用。
可以在触发器上点击鼠标右键,选择“禁用”即可将其设为无效,再次点击“已禁用”则可恢复启用该触发器。

20

20

21

21


可以针对整个触发器中某一条语句进行有效性设置,这样无论语句有没有完成,被禁用的语句都会被略过。鼠标右键点击语句,选择“设为无效即可禁用这条语句。同样鼠标右键点击语句,选择“设为有效”可以恢复启用这条被禁用语句

22

22

23

23


触发器的多层结构
一些复杂的游戏逻辑需要通过复杂的触发器语句来实现,如复合条件,循环等。
子触发器
可以在触发器的动作中创建子触发器。当项目逻辑运行到子触发器位置时,就会进入子触发器流程,即对触发器的事件与条件依次判断后运行子触发器动作。运行过子触发器逻辑后即可运行触发器动作列表中的下一条动作。你只需要在动作上右键点击新建子触发器即可创建新触发器。

24

24


运行完子触发器后,所设定的单位会被移动到对应的点。

25

25


子触发器中的变量作用域
全局变量可以在任意触发器及其子触发器的范围内生效局部变量可以在当前触发器及其子触发器的范围内生效,子触发器局部变量只可以在当前子触发器的范围内生效。

26

26


如果变量B是在子触发器里面声明的,那么你只能在子触发器里面使用,不能在子触发器外使用。

27

27


流程语句-复合条件
你可以使用复合条件进行复杂的逻辑判定。

28

28


(1)设定满足所有的条件才执行动作:
下方图片中的语句表示,如果A等于1B等于1将所设定的单位移动到所设定的,其中AB整数类型的局部变量)

29

29

(2)设定只需满足任一条件就执行动作:
下方图片中的语句表示,如果整数A等于1或整数B等于1, 则将所设定的单位移动到所设定的

30

30

(3)设定所有条件不成立才执行动作:
下方图片中的语句表示,如果整数A不等于1并且整数B不等于1,将所设定的单位移动到所设定的

31

31

(4)设定如果条件成立则触发A事件,如果不成立则触发B事件
下方图片中的语句表示,如果A等于1,就移动设定单位到点A,否则移动设定单位到点B。

32

32


循环
你可以用循环让一组触发器语句重复运行。
(1)指定次数重复执行[指定整数变量]:以指定整数变量为运行次数,重复执行某项动作。

33

33

例如,下方图片中的语句表示,在A创建三个属于玩家1关羽单位,单位朝向180°方向,其中A为一个类型的局部变量。

34

34

(2)条件成立重复执行:进行无限次的循环,直到设定的条件不达成。

35

35

例如,下方图片表示,如果A等于1,则在A无限创建属于玩家1关羽单位,单位朝向180°方向。

36

36


计时器
可以用计时器来处理和时间有关的游戏逻辑。

37

37


(1)运行单次计时器:计时器运行一次后开始执行动作。
例如,下方图片中的语句表示,3秒后移动设置单位到A ,其中A类型的局部变量

38

38

(2运行循环计时器:计时器循环运行,每次运行后都会执行动作。
例如,下方图片中的语句表示,每过3秒就就会移动设置单位到A
注意:你可以选择True立即执行(如下图所示或者选择Flase等待3秒后再执行第一次动作。

39

39

(3)运行计数计时器:中间停留固定时间、固定次数的计时器
例如,下方图片中的语句表示,每隔3秒,移动单位到“点A”,一共执行3次并立即执行。

40

40

单位组
单位组是一个或多个单位组成的集合,保留了单位的操作方式,你可以直接对单位组进行一些重复性的操作。
遍历单位组中单位做动作:对单位组内每一个单位执行动作。

41

41

例如,下方图片中的语句表示,复活单位组AA中所有在A单位,其中AA单位组类型的局部变量,A类型的局部变量。

42

42


玩家组
玩家组是一个或多个玩家组成的集合,可以直接对玩家组内所有玩家进行操作。
遍历玩家组中玩家做动作:设定的动作会对于玩家组内的所有玩家生效。

43

43

例如,下方图片中的语句表示,在A创建关羽类型的单位,分配给玩家组BB中的玩家一人一个,单位面向角度180°,其中BB玩家组类型的局部变量,点A类型的局部变量。

44

44


运动器
运动器可以为单位或者特效等添加运动效果,比如沿着直线运动、追踪某一个单位等。运动器是制作技能特效等场景中十分常用的功能。

45

45

你可以设置运动器的方向距离初始速度加速度等参数,也可以在运动器的运行过程中通过各类触发语句实现效果。
方向:直线运动器运动方向。
距离:运动器效果的最远距离。
初始速度:运动器释放时的初始速度。
加速度:运动器释放后加速度。
可选参数:点击可选参数,你可以对其他参数进行设置。

46

46


47

47

48

48


编辑器交流群:656413818

100

主题

161

回帖

1821

积分

管理员

编辑器交流群:656413818

积分
1821

论坛管理

发表于  2023-4-20 15:40:53 | 显示全部楼层
函数库
之前已经初步了解了函数库,这里简单介绍一下函数库的运用

添加函数
你可以将自己常用的触发器语句转换成库函数以供重复使用。在函数库添加语句后,你就可以在触发器中找到该函数语句并直接使用。与触发器的操作逻辑相同,在左侧创建函数后,在右侧编辑函数的功能。

1

1


函数描述
函数描述定义了这个逻辑函数在动作列表中的显示模式。函数描述中包含以下三项内容
名称:生成的触发器语句的名字。
描述:生成的触发器语句的内容和格式。
提示:当前函数的说明。

2

2


在上图显示的界面中双击函数描述或者点击铅笔图标可以对函数进行设置。

点击可用参数可以设定参数类型,例如计时器,单位,整数等参数类型。

3

3


参数
参数语句部分定义了需要在触发器语句中填写的变量。

4

4


返回值

返回值表示动作的返回结果。例如当你在动作中设定A+B,在参数中设定A等于1,B等于1,那么此时返回值值为2。

5

5

你可以点击加号,设定返回值的名称类型,方便后续调用触发器。

6

6


动作
动作语句部分列出了这个函数的动作列表,包含这条函数的具体逻辑。动作部分的修改方式与编写触发器一致。

7

7


函数库的调用
当你在触发器中通过选择函数来添加动作时,可以在函数选项中看到函数库中的所有函数,选择需要的函数后,这条动作会直接生效,该函数的参数会作为需要填写的变量存在。

8

8





编辑器交流群:656413818

0

主题

5

回帖

54

积分

普通创作者

积分
54
发表于  2023-5-31 10:33:35 | 显示全部楼层
厉害 学习!!!

17

主题

27

回帖

276

积分

优秀创作者

积分
276

夏日·闪闪发光勋章

QQ
发表于  2023-6-12 00:52:34 | 显示全部楼层
请问自定义值和普通变量有什么区别,自定义值也是一种变量吗

3

主题

70

回帖

280

积分

管理员

【问题收集】

积分
280
发表于  2023-6-12 10:58:06 | 显示全部楼层
十分之一神#5108 发表于 2023-6-12 00:52
请问自定义值和普通变量有什么区别,自定义值也是一种变量吗

自定义值和普通变量都是变量的一种,但是它们的作用不同。普通变量是在编写触发器语句时直接设置的变量,而自定义值是在事件管理中提前设置并添加事件中需要的参数,然后在触发器-自定义事件中进行调用。自定义值可以方便地在多个触发器中共用,而普通变量则只能在当前触发器中使用。

17

主题

27

回帖

276

积分

优秀创作者

积分
276

夏日·闪闪发光勋章

QQ
发表于  2023-6-12 19:46:13 | 显示全部楼层
戈隆-翼 发表于 2023-6-12 10:58
自定义值和普通变量都是变量的一种,但是它们的作用不同。普通变量是在编写触发器语句时直接设置的变量, ...

感谢解答

2

主题

3

回帖

40

积分

普通创作者

积分
40
发表于  2023-6-20 22:36:40 | 显示全部楼层
有类型转换吗,获取【】的icon图标的图片ID 这个函数找不到,  开发者文档里面参考的三个ECA例子地图有下载吗(没接触过有点迷)