# 积木脚本

# 启动事件

使用积木创作小游戏是基于事件的,丰富的事件钩子积木能让你快速简单的控制游戏流程,监听状态和输入。

启动事件都是“头部积木”,一旦启动事件被触发,其中包含的积木队列将会依次执行。

积木名称 参数 描述
当游戏开始时 主场景的所有精灵初始化之后,触发此事件
当角色被[?]时 点击/按下/松开/轻触 游戏角色事件绑定
当屏幕被点击时 点击/按下/松开 屏幕事件绑定,可在任意精灵的积木区域绑定
当在屏幕向[?]滑动 上下左右 滑动手势监听
当[?]碰撞[?] [精灵][精灵/边缘] 全局监听碰撞事件,碰撞的瞬间仅触发一次
当角色移出场景 上/下/左/右/全部边缘 移出边缘后持续触发
当作为克隆体启动时 使用「克隆[?]」积木产生的克隆体都将立即触发此事件
当收到通知[?] 选项:消息名称 订阅消息,当收到通知时触发
当切换到场景[?]时 选项:场景名称 切换到新场景时,此积木作为启动事件
当设备方向变化 左/右 手机左、右翻转时触发
当<条件>成立 <条件> 可以任意搭配侦测条件,条件成立时触发

# 逻辑控制

积木名称 参数 描述
重复执行 重复执行频率跟游戏的刷新频率一致,约16.67ms一次
重复执行(10)次 整数 有限次的循环,执行频率跟游戏的刷新频率一致
重复执行直到<条件> 条件积木 一直重复执行,直到<条件>为
退出循环 退出最近一层循环语句
如果<条件> 条件积木 条件判断语句
如果<条件>,否则 条件积木 条件判断语句
等待(1)秒 数字 等待(n)秒之后继续执行下面的积木动作
等待<条件> 条件积木 当<条件>为真时,才会执行该积木之后的所有动作

# 运动

积木名称 参数 描述
移动(10)步 整数 向当前角色的移动朝向角度移动10步
移动到[?]位置 随机/手指/[精灵] 让角色瞬间移动到某精灵对象位置
移动朝向[?]位置 随机/手指/[精灵] 设置角色移动朝向某精灵对象
移动朝向(45)度 0-360 设置角色移动朝向。默认移动朝向是90°(向右)
移动碰到[?]就反弹 边缘/[精灵] 此反弹是角度反弹,不带物理特性
面向[?]位置 [精灵] 默认面向是90°(向右)
旋转到(10)度 0-360 旋转到固定度数
旋转(15)度 0-360 设置角色发生旋转,逆时针是正方向
移到X:(0) Y:(0) 数字 设置角色的X、Y坐标
将X/Y坐标设置为(0) 数字 直接设置角色的 X/Y坐标
将X/Y坐标增加(0) 数字 增量改变角色的 X/Y 坐标

# 外观

积木名称 参数 描述
显示 让角色在舞台上显示
隐藏 让角色在舞台上隐藏
切换造型为[?] 选项 切换角色造型到某个选项
切换到第(n)个造型 整数 切换到序号为 n 的造型
切换背景的造型为[?] 选项 切换背景造型到某个选项
将角色大小增加(n)% 整数 在现有基础上缩放角色的大小。负数缩小,正数放大
将角色大小设置为(n)% 基于当前尺寸进行百分比放大或缩小
设置透明度为(1) 数字 透明度的值的可控制范围是0(完全透明)-1(不透明)
将造型翻转 左右/上下 将角色镜像翻转
修改[数字角色]数字为(0) 数字 动态改变数字素材的值
修改[文字角色]文字为(你好) 字符 动态改变文字素材的文本值

# 动画

积木名称 参数 描述
在(n)秒内循环/单次播放造型 数字;选项 播放造型帧动画将不会阻塞后续积木
停止播放造型 停止播放造型动画
在(n)秒内逐渐隐藏/显示 数字 阻塞式,n秒之后才会执行一个积木
在(n)秒内滑行到x:(n)y:(n) 数字 阻塞式,同上
在(n)秒滑行到[?]位置 数字;选项 阻塞式,同上

# 声音

积木名称 参数 描述
播放声音[?] 选项 播放一遍音频资源
循环播放声音[?] 选项 无限循环播放当前音频资源
暂停声音[?] 选项 暂停播放某个音频资源,当再次「播放声音」时,将继续播放
停止声音[?] 选项 停止播放某个音频资源,当再次「播放声音」时,将重头播放
停止所有声音播放 停止播放所有音频资源

# 克隆

「克隆」是使用积木进行可视化编程最重要的能力之一,它完全复制了克隆本体的所有属性并继承所有事件。方便开发者复用和管理具有相同动作行为的精灵组。 示例精灵克隆

# 侦测

丰富的条件侦测能力,让基于事件触发机制的游戏更加可控。配合「当<条件>」积木使用非常方便。

积木名称 参数 描述
[自己/精灵]碰到[?] 选项:边缘/精灵 碰到的一瞬间仅触发一次
[自己/精灵]与[?]相交 选项:边缘/精灵 相交状态,碰撞后持续触发直到相离
[自己/精灵]移出[?] 选项:边缘 移出屏幕后持续触发
屏幕被按下 手指是否在屏幕超过300ms
[自己/精灵][?] 选项:显示/隐藏 返回精灵的显示状态
[自己/精灵]的[?] 选项:属性 返回精灵的所有属性
手指的[?]坐标 选项:x/y 返回手指的坐标

# 通知

积木名称 参数 描述
通知「所有人/精灵」[?] 选项: 所有人/精灵;选项: 信号标识 发布通知
当收到通知[?] 选项: 信号标识 订阅通知

“通知「所有人/精灵」[?]” 和“当收到通知[?]”是一对积木,它们提供了游戏精灵之间通信的能力。

通知的发布方和订阅方通过唯一的字符串标识作为“信号标识”,“信号标识”可通过下拉菜单添加,可在游戏编辑页顶部栏统一管理。

02

示例:角色通知

# 变量

在游戏过程中,用“变量”记录“得分”或者标识精灵对象的中间状态是非常不错的选择。在开发工具的顶部栏可以管理所有变量,变量分为:普通变量和列表两类。变量最常见的使用是用其记录“玩家得分”

# 1、创建变量

可在右侧积木面板的“变量”分类中找到「创建变量」按钮

03

亦可在开发工具顶部栏中直接添加

04

# 2、全局变量和局部变量

全部变量在整个游戏中是唯一的,一旦改变,任何读取全局变量的积木都会拿到最新的值。例如:玩家得分

局部变量局部变量是属于某个精灵个体的,并且精灵的克隆体也拥有其自己的局部变量。例如:打飞机游戏中的敌机生命值,每个敌机个体拥有其自己的生命值,当被子弹打中时,只有当前个体的生命值会减少。

05

# 3、变量控制

第一个变量一旦创建,在积木面板的“变量”分组中就会多出两个积木,如下表所示:

积木名称 参数 描述
将[?]设置成(c) 选项: 变量名称;字符串 变量设置
将[?]增加(n) 选项: 变量名称;数字 变量叠加

# 运算

积木名称 参数 描述
算数运算 整数 下拉框可选择加、减、乘、除
取()到()的之间的随机整数 整数
数值判断 整数 下拉框可选择大于、小于、等于...
逻辑运算 条件积木 并且:两个条件都为真时为真;或者:其中一个条件为真就是真
Math函数库 数字 包含:近似运算、三角函数、绝对值等

# 物理引擎

积木名称 参数 描述
开启物理引擎 让精灵具备物理属性,最直观表现为自由落体运动
关闭物理引擎 将精灵从物理世界中移除,不再具有物理属性
设置角色的碰撞轮廓[素材轮廓] 选项 复杂的轮廓会有性能损耗,圆形和方形损耗相对较低
设置角色[可以/不可以]物理倾倒 选项 精灵在物理运动过程中,受到惯性影响会发生倾倒
设置摩擦系数(n) 数字 默认值是0.1,取值范围为(0,1),0表示精灵几乎可无限滑动
设置反弹系数(n) 数字 默认值是0,取值范围为(0,1),0表示完全没有弹性
设置质量(n) 数字 质量越大,精灵惯性越大
设置重力加速度的大小(n)和方向(c) 数字 全局设置,默认方向是垂直向下(-90),大小为9.8
设置速度的大小(n)和方向(c) 数字 给定一个方向,为精灵设置一个初始速度
设置力的大小(n)和方向(c) 数字 给定一个方向,给精灵施加一个力
设置物理边界为屏幕[全部边缘] 选项 全局设置,边界在这里的定义就是屏幕边缘

# 特效组件

积木名称 参数 描述
角色抖动 抖动角色,可设置时长,阻塞后续积木
粒子特效 向四周散射粒子,粒子可自定义
向上漂浮 给精灵赋予向上的一个重力加速度,效果类似气球漂浮
角色跳跃 精灵连续多次向前上下跳跃
背景循环滚动 常用于设置地板无限混动
角色闪烁 快速闪烁,可设置闪烁间隔和次数

# 系统组件

积木名称 参数 描述
触发短振动 使手机发生较短时间的振动(15 ms)
触发长振动 使手机发生较长时间的振动(400 ms)
打开排行榜组件 注:排行榜组件自带关闭按钮
上传分数(n)到排行榜 数字 保存并上传得分
设置排行榜标题(s) 字符串 自定义标题
设置排行榜单位(s) 字符串 单位可以是分(s)、距离(m)、杀敌数(n)等
设置排行榜排序[?] 选项 默认降序,设置排行榜升序或降序
设置排行榜周期[?] 选项 默认为历史累计,可选月周日更新榜单