蛋码积木
在蛋码中,每一个积木代表了一个特定的指令、功能或值。不同类型的积木拥有不同的功能。
积木类型
事件
拖出后会新建一个触发器,并注册一个监听事件,当事件触发时执行条件判断和动作结果。每个触发器只能使用一个事件积木(不包含子触发器)。
动作
触发事件后可以产生的结果,一个触发器可拥有不限量的动作积木,运行时会依次执行相应的动作,如有报错则跳过报错的动作,直接执行后续的动作。
控制
控制积木可以控制动作的执行流程,包括循环、条件判断和其他控制流结构。
条件
条件积木不能单独使用,包含多种条件预设,可以嵌入控制积木中给动作指令设定前置条件。
取值
取值积木不能单独使用,主要存在形式是嵌套在其他积木中,帮助我们输入取值内容。
取值积木根据作用场景的不同有不同的取值方式,一般有预设、输入值、表达式、变量四种取值方式。
其中预设是可以直接引用的数据;输入值一般是由我们通过键盘输入数值或字符串;表达式通常是系统自带的公式;变量则是从我们自己设定的变量中选择。
我们既可以直接在其他积木的取值填空内直接使用预设取值,也可以在类型匹配的前提下从取值积木分类中拖出相关积木放入空格中。
变量
可以将数据或者对象记录下来的存储结构。
不同种类的变量可以存储不同类型的数据或对象。
整数、实数、布尔值、字符串等变量可以直接在新建变量时输入默认值,不能直接输入默认值的变量需要在动作积木中选择<设置变量>进行取值。
全局变量是在整个地图逻辑中生效的变量,局部变量只在当前对象内部生效,临时变量只在当前触发器生效。
列表
列表实际上是一种数据容器,可以用它来存储同一类型的多个变量。
可以在新建列表时设定列表里的元素,也可以通过<添加列表元素>等积木动态增加、删除、修改列表里的元素。
列表内的元素需要我们使用整数进行“编号”,方便我们在之后使用这个“编号”对列表进行操作来查找、添加、删除元素。
列表的长度即列表中的元素个数。
列表中允许存在重复元素,我们可以使用遍历对列表中的元素进行批量操作。
权重池
权重池可以存储同一类型的多个变量,并赋予每个变量权重。
权重池里的元素是无序的,通常用于随机取值,元素的权重越大,被随机到的概率越大。
自定义积木
自定义积木就是蛋码里的“函数”,可以将编写的蛋码逻辑封装在一个自定义积木里重复利用,让编辑更高效。
自定义事件积木
创建自定义事件积木后,这个事件会被存储为预设,使用蛋码<发送自定义事件>时填入该自定义积木,可以附带发送事件积木所在触发器的数据;拖出来自定义事件积木时,就可以将回传的数据作为事件响应参数使用。
创建和编辑自定义事件积木时,可在【内容】中添加参数,设置回传数据的数据类型和名称。
自定义动作积木
自定义动作积木可以理解为创建一个“公式”,我们引用自定义动作积木时,在参数栏里填写当前触发器使用的数据,自定义动作积木把数据填入定义里的积木串中执行。
使用自定义动作积木把高频使用的逻辑进行封装,可以节省重复编写的成本。
自定义取值积木
自定义取值积木在自定义动作的基础上,会根据填入的参数返回一个数据作为取值积木使用。
拼接规则
积木使用自身形状的凹凸口进行拼接,向上的凹口用于上接,向下的凸口用于下接。
事件积木作为触发器的开端通常没有凹口,特殊的动作积木如【游戏结束】没有凸口。每个拼接口只能被使用一次。
事件积木下拼接的动作积木是依次执行的,动作的先后顺序会影响功能的实现。
如果中间有某一个积木报错或被禁用,运行时将会自动跳过这个积木,直接执行后续的动作。
积木具有自适应功能,可以根据被嵌套的积木大小扩展大小,只要拼接类型正确,不管多长的积木都可以放进中间的填空里。
部分积木具有变形功能,可以通过加减符号扩展积木容纳其他积木的区域。
