← Yop2D

Yop2D 节点参考

Français · English · Español · Deutsch · Italiano · Português · Русский · 中文 · 日本語

Yop2D 是一款免费、无需代码的 Android 2D 游戏引擎。游戏逻辑由在 Blueprint 中相互连接的节点(可视化积木块)组成:事件启动一条链,接着是动作和条件。本页介绍编辑器中的全部 158 个节点,以及它们的设置(输入)和输出。

分类

事件

启动时

场景一开始就运行,只运行一次。

示例: 摆放敌人、显示初始分数或播放音乐。

每帧

在游戏的每一帧都运行(大约每秒 60 次)。

示例: 跟随手指或一直检查某个条件。不要在它下面放 “播放音乐” 或 “调用函数”。

点击结束

玩家在屏幕任意位置抬起手指时运行。

示例: 松开屏幕时停止射击。

点击对象时

输入: 对象

手指碰到所选对象时运行。 以标签(「# 卡片」)为目标时,带有该标签的每个物体都会触发:被触摸的物体成为相关物体。

示例: “跳跃”按钮、打开宝箱、选择答案。

松开物体

输入: 对象

手指在所选对象上方抬起时运行。

示例: 只在松开按钮时才确认。

按住物体

输入: 对象

只要手指一直按在所选对象上,每一帧都会重复运行。

示例: 左 / 右按钮:按住时角色一直走。

手指按住

只要有手指按在屏幕任意位置,每一帧都会重复运行。

示例: 按住屏幕时让飞船上升(在公式里用 doigt.x 和 doigt.y)。

按下返回键

当玩家按下手机的返回键(箭头或手势)时运行。适合用来打开暂停菜单或回到上一个画面。如果游戏里没有这个节点,返回键在游戏中不起任何作用。

示例: 返回 → “暂停游戏”,然后显示“继续 / 退出”菜单。

开始拖拽

输入: 对象

玩家开始拖动所选对象时运行(该对象必须勾选 “可移动 (拖拽)”)。

示例: 拿起卡牌时把它放大。

结束拖拽

输入: 对象

玩家松开正在拖动的对象时运行。

示例: 检查拼图块是否放对了位置。

碰撞 A/B

输入: 对象 A, 对象 B

对象 A 开始碰到对象 B 的那一刻运行一次。两者分开后才会再次运行。“进入区域”也用这个事件。

示例: 玩家碰到终点区域 → 下一关。

离开区域

输入: 对象 A, 对象 B

对象 A 不再碰到对象 B(离开区域)的那一刻运行一次。

示例: 玩家走开时关上门。

鼠标悬停

输入: 对象

手指在屏幕上滑动、到达所选对象时运行。

示例: 手指经过按钮时让它发亮。

悬停结束

输入: 对象

手指离开它刚经过的对象时运行。

示例: 关闭按钮的高亮。

物理撞击

输入: 对象

所选对象(动态物理)落到地面或弹起时运行。

示例: 播放落地音效或让摄像机震动。

当变量改变时

输入: 变量

所选变量的值每次改变时运行。

示例: “vie”(生命值)改变时,更新生命条。

本地事件

输入: 事件名称

你自己的事件,名字由你决定。用同一个 Blueprint 里的 “调用事件” 节点来触发它。

示例: 从多个地方调用的“GameOver”事件。

点击操作按钮 (冒险)

玩家按下场景中的 “操作按钮” 对象(动作按钮)时运行。

示例: 在冒险游戏里和角色说话或开门。

如果对象碰到标签

输入: 对象, 标签

所选对象碰到带有该标签的对象时,每次接触运行一次。被碰到的对象成为 “相关对象”。

示例: 玩家碰到金币(标签“piece”)→ 销毁相关对象,分数加 1。

场景与 HUD

切换场景

输入: 场景  →  输出: 无(脚本结束)

离开当前场景,前往所选场景。这个节点会结束脚本。

示例: 最后一关结束后前往“太棒了!”画面。

按名称切换场景

输入: 场景名称  →  输出: 无(脚本结束)

前往你写下名字的场景(也可以用得出这个名字的公式)。这个节点会结束脚本。

示例: 用 ="关卡" + level 这样的公式,通过变量选择关卡。

下一个场景

输出: 无(脚本结束)

前往场景列表中紧接着的下一个场景。这个节点会结束脚本。

示例: 玩家到达终点 → 下一关。

上一个场景

输出: 无(脚本结束)

前往场景列表中紧挨着的上一个场景。这个节点会结束脚本。

示例: 菜单里的“返回”按钮。

重新开始场景

输出: 无(脚本结束)

从头重新开始场景:对象回到原位,局部变量恢复初始值。全局变量不变。

示例: 生命值降到 0 时 Game Over。

打开 HUD

输入: 场景

把另一个场景像图层(HUD)一样显示在游戏上方,它有自己的 Blueprint。

示例: 暂停菜单或物品栏。

关闭 HUD

关闭打开的 HUD。

示例: 暂停菜单里的“关闭”按钮。

放置场景副本

输入: 场景, X 位置, Y 位置

把所选场景(预制体)的一份副本放进游戏,位置为 X, Y。

示例: 放出在另一个场景里准备好的一组敌人。

销毁场景副本

输入: 场景

删除游戏中所选场景的所有副本。

示例: 一波结束时清除所有敌人组。

退出游戏

输出: 无(脚本结束)

关闭导出的游戏。在编辑器里不会关闭任何东西:请用停止按钮。

示例: 主菜单里的“退出”按钮。

屏幕底部小提示

输入: 消息

在屏幕底部显示几秒钟的小消息。以 = 开头可以显示计算结果。

示例: ="分数:" + score

写入日志(用于调试)

输入: 消息

把消息写进项目日志(诊断文件),游戏里不显示任何东西。以 = 开头可以写入计算结果。

示例: ="生命 = " + vie,测试时用来检查数值。

锁定相机

输入: 对象, 跟随 X(是 / 否), 跟随 Y(是 / 否), 仅 X 视差(是 / 否)

摄像机跟随所选对象,也可以只水平或只垂直跟随。没有选择对象时,摄像机不再跟随。

示例: 在大型平台关卡中跟随玩家。

相机边界

输入: 最小 X(关卡左边缘), 最大 X(右边缘), 最小 Y(顶部), 最大 Y(底部;全为 0 = 无边界)

让相机不超出关卡边缘:永远不会显示外面的空白。全部为 0 = 无边界。

示例: 宽 6480 像素的关卡:最小 X 0,最大 X 6480,最小 Y 0,最大 Y 1080,并对玩家使用 “锁定相机”。

相机平滑

输入: 跟随速度(0.01 到 1)

设置摄像机追上被跟随对象的速度:0.01 = 非常柔和,1 = 紧贴对象。

示例: 0.1:稍微延迟、平滑跟随的摄像机。

屏幕闪光

输入: 颜色, 强度(%,0 = 无), 持续时间(秒)

让整个屏幕闪出一种颜色,并很快消失(强度用 %,持续时间用秒)。

示例: 玩家被击中时闪一下红光,持续 0.5 秒。

屏幕色调

输入: 颜色, 强度(%,0 = 无), 过渡(秒)

给整个游戏(HUD 之下)蒙上一层颜色,平滑过渡。强度为 0 时移除。

示例: 夜幕降临:深蓝色,强度 55,过渡 2 秒。

暗角

输入: 颜色, 强度(%,0 = 无), 过渡(秒)

像电影一样柔和地压暗屏幕四周(在 HUD 之下)。强度为 0 时移除。

示例: 洞穴中的紧张气氛:强度 75。

屏幕淡入淡出

输入: 方向, 颜色, 持续时间(秒)

让整个屏幕淡出为某种颜色,或从该颜色淡入。切换场景时淡入淡出会继续。

示例: “屏幕淡入淡出”(淡出),“等待” 1 秒,“切换场景”,然后在下一关开始时 “屏幕淡入淡出”(淡入)。

氛围(雨、雪、夜晚……)

输入: 飘落或飞舞的东西, 光线, 强度, 环境音(雨、风、雷……), 出现时间(秒)

在整个屏幕上加上氛围,直到下一个“氛围”节点为止:飘落或飞舞的东西(雨、带闪电的雷雨、雪、花瓣、落叶、萤火虫、爱心、气泡、薄雾)和光线(夜晚、日落、回忆、梦境、恐惧、昏暗)。旧的淡出,新的淡入。

示例: 选择“离开”后,雷雨加夜晚光线;“无”和“正常”会全部移除。

缩放画面

输入: 缩放(%,100 = 正常), 朝向, 持续时间(秒)

平滑放大整个游戏画面(场景,或故事的背景和角色),朝向中心、脸部、一侧、上方或下方。100 = 恢复正常;对话框和 HUD 不动。

示例: Hana 害怕时朝脸部缩放到 140,持续 2 秒,然后回到 100。

相机抖动

输入: 强度, 持续时间(毫秒,1000 = 1 秒)

按所选强度和时长(毫秒)晃动屏幕。

示例: 爆炸:强度 15,时长 400。

振动

输入: 持续时间(毫秒,1000 = 1 秒)

让手机振动所选时长(毫秒)。没有振动马达时不会有反应。

示例: 玩家受伤时振动 100 毫秒。

保存状态

记住场景的状态(对象和变量)以及全局变量,就像存档点。

示例: 关卡中间的检查点旗帜。

恢复状态

把场景恢复到上一次 “保存状态” 的样子。如果还没有存档,什么也不变。

示例: 掉下去后从检查点重新开始。

时间

等待

输入: 时长(秒)

等待所选的时间(秒),然后继续。等待期间游戏的其他部分照常运行。

示例: 显示“你输了!”,等待 2 秒,然后重新开始场景。

重复

输入: 每隔(秒), 次数(0 = 无限), 计时器名称(可选)  →  输出: 立即 / 每次 / 本步结束

每隔 X 秒运行一次 “每次” 输出,重复指定次数(0 = 无限),最后运行 “本步结束”。“立即” 在一开始就运行。如果它已经在运行,不会重复启动。

示例: 每 3 秒生成一个敌人。

倒计时

输入: 对象, 变量, 起始值(可选), 计时器名称(可选)  →  输出: 每秒 / 本步结束

每秒把所选变量(数字)减 1,直到 0。每次计时运行 “每秒”,到 0 时运行 “本步结束”。“起始值(可选)” 设置起始值。

示例: 60 秒倒计时:到 0 时 Game Over。

停止计时器

输入: 名称(留空 = 全部)

停止这个名字的计时器(重复或倒计时);名字为空时停止所有计时器。

示例: 玩家获胜时停止计时。

游戏速度(慢动作)

输入: 速度(1 = 正常,0.5 = 慢)

改变整个游戏的速度:1 = 正常,0.5 = 慢动作,2 = 加速(0 到 4)。

示例: 持续 2 秒的慢动作效果。

暂停游戏

暂停游戏:移动和计时器都会停止。

示例: 打开暂停菜单。

继续游戏

暂停后继续游戏。

示例: 暂停菜单里的“继续”按钮。

打击停顿

输入: 持续时间(秒), 停顿时的速度(0 = 定格)

让整个游戏在极短的时间内(真实秒数)几乎停住,然后恢复原来的速度。让打击更有力度。

示例: 敌人爆炸时:持续 0.06 秒,速度 0.05。

外观与对象

移动对象

输入: 对象, X, Y

把对象直接放到位置 X, Y(瞬移)。

示例: 把玩家放回起点。

推动对象

输入: 对象, 增加 X, 增加 Y

让对象从当前位置移动指定的距离。有物理的对象会被墙挡住。

示例: 和 “按住物体” 连接:“增加 X” = 5 向右移动。

修改属性

输入: 对象, 属性, 值

修改对象的一个属性,从列表中选择(x、y、旋转、透明度、文本……)。

示例: 把指针的旋转设为 =temps * 90。

旋转

输入: 对象, 角度(度)

把对象转到指定角度(度)。

示例: =lunzi.rotation + 5 连接到 “每帧”,让“lunzi”对象一直旋转。

透明度

输入: 对象, 不透明度(0到1)

设置对象的透明度:0 = 看不见,1 = 不透明。

示例: 0.5:半透明的幽灵。

可见性

输入: 对象, 可见(是 / 否)

显示(true)或隐藏(false)对象。

示例: 显示一开始隐藏的“你赢了!”消息。

设置标签(对象分组)

输入: 对象, 标签

给对象一个新标签。

示例: 被打败的敌人获得标签“无害”。

移到前面 / 后面

输入: 对象, 深度(越大越靠前)

改变对象的图层:数字越大,对象越靠前。

示例: 让玩家显示在装饰物前面。

放大 / 缩小

输入: 对象, 水平大小(1 = 正常), 垂直大小(1 = 正常)

改变对象的大小:1 = 正常,2 = 两倍大,0.5 = 一半。

示例: 玩家吃了蘑菇后变大。

销毁对象

输入: 对象

从场景中删除所选对象。

示例: 选择 “相关对象”,销毁玩家刚碰到的金币。

按标签销毁

输入: 要销毁的标签

删除所有带该标签的对象。

示例: 炸弹销毁所有“敌人”对象。

更换图像

输入: 对象, 图像

把对象的图片换成 Assets 里的另一张。留空 = 没有图片。

示例: 角色根据按下的按钮朝左或朝右看。

修改颜色

输入: 对象, 颜色

改变对象的颜色。

示例: 答案正确时按钮变绿。

生成克隆 (生成器)

输入: 对象 A, 对象 B

在对象 A(出生点)的位置创建对象 B(模板)的副本。

示例: 大炮(A)发射炮弹(B)。

颜色滤镜

输入: 对象, 滤镜

给对象加滤镜:黑白、棕褐色、反色,或选“无”去掉滤镜。

示例: 回忆片段时切换成黑白。

颜色混合(发光效果)

输入: 对象, 滤镜

改变对象与背后内容的混合方式(叠加、正片叠底、滤色、反色)。

示例: 用“叠加”做发光的灯或火焰。

镜像效果 / 翻转

输入: 对象, 轴

翻转对象:水平(左 / 右)或垂直(上 / 下)。

示例: 角色面朝行走的方向。

锁定 / 解锁对象

输入: 对象, 锁定(是 / 否)

在编辑器中锁定或解锁对象(小锁图标)。在游戏中没有任何作用:要禁止拖动对象,请使用 “改变行为”。

背景滚动(远近感)

输入: 对象, 背景速度(1 = 正常,0.5 = 更慢,远处效果)

设置摄像机移动时对象的滚动速度:1 = 正常,0.5 = 慢一半(景深效果)。

示例: 背景里缓慢移动的山。

链接两个对象

输入: 对象 A, 对象 B

把对象 A(子对象)绑到对象 B(父对象)上:B 移动时 A 跟着移动。

示例: 跟随角色手部的剑。

发光光晕

输入: 对象, 状态, 颜色, 光晕大小

在对象周围加上所选颜色和大小的柔和光晕(会贴合图片的形状),或将其移除。

示例: 一个发出黄光的奖励道具,大小 20。

粒子效果

输入: 对象, 预设, 数量(0 = 预设值), 颜色(留空 = 预设颜色), 大小(1 = 正常), 图片(空 = 预设形状)

在对象上喷出一阵粒子:爆炸、火花、灰尘、烟雾、火焰、雨、雪、彩纸、拖尾、长拖尾、超空间或速度线。可设置数量、颜色和大小。 设置图片(“图片”选项)后,每个粒子都会变成这张图:手绘爆炸、星星、树叶……

示例: 被击中的敌人炸成品红色:预设“爆炸”,颜色 #FF40D0。

开启 / 关闭粒子

输入: 对象, 状态

开启或关闭一个“粒子”对象:让它持续喷出粒子或停止(已经喷出的粒子会自然消失)。

示例: 飞船前进时点燃推进器。

粒子爆发

输入: 对象, 粒子数量

让“粒子”对象一次性喷出大量粒子,使用它自己的设置(预设、颜色、大小)。

示例: 通关时喷出 80 片彩纸。

更改粒子预设

输入: 对象, 预设

在游戏中更改“粒子”对象的预设。

示例: 火被扑灭后变成烟。

闪烁

输入: 对象, 状态, 速度(毫秒,1000 = 1 秒), 持续时间(毫秒,0 = 无限)

让对象按所选速度(毫秒)闪烁一段时间(毫秒,0 = 一直闪),或停止闪烁。

示例: 玩家受伤后闪烁 1 秒。

创建对象的副本

输入: 对象 B, X 位置, Y 位置

在位置 X, Y 创建对象 B(模板)的副本。副本成为 “相关对象”。

示例: 在随机位置落下石头:X = random(0, 800)。

发射对象

输入: 对象 A, 对象 B, 模型名称, 方向, 速度, 离开屏幕后销毁(是 / 否)

在对象 A 处创建一个投射物(“模型名称” 里写的对象),并按所选速度发射:0°、90°、180°、270°、朝向对象 B(“朝向目标”)或按 A 的角度。

示例: 向上发射激光的飞船(270)。

发射制导导弹(弧线)

输入: 对象 A, 对象 B, 模型名称(图像朝右), 起始方向(0 = 右,90 = 下,180 = 左,270 = 上), 速度, 转弯:每步度数(小 = 大弧线), 瞄准前等待(秒), 存在时间(秒,0 = 无限)

发射一枚导弹:它先朝某个方向飞,然后逐渐转向目标,划出真正的弧线。“对象A”是发射者,“对象B”是要追踪的目标。模型是一个隐藏对象,其图片朝右。“转弯”数值小则弧线大;寿命结束时,没有击中任何东西的导弹会爆炸。

示例: 敌人向飞船发射导弹:对象A=敌人,对象B=飞船,寿命3秒。

延迟后销毁对象(秒)

输入: 对象, 延迟(秒)

在延迟(秒)之后移除所选对象。适合在爆炸动画结束后让爆炸消失。

示例: 在“生成克隆 (生成器)”和“播放动画”之后,0.4秒后销毁爆炸图片。

设置进度

输入: 对象, 新进度

设置进度条的填充量,介于最小值和最大值之间。

示例: “新进度” = vie,用于生命条。

屏幕穿透

输入: 对象

从屏幕一边出去的东西会从另一边回来(吃豆人效果)。

示例: 从右边飞出、又从左边回来的小行星。

保持在屏幕内

输入: 对象, 边距

不让对象离开屏幕。边距会让它在边缘前一点停下。

示例: 玩家的飞船始终可见。

触电

输入: 对象, 闪电颜色, 持续时间(秒,0 = 无限), 强度(0 = 停止,1 到 3)

闪电在对象周围噼啪作响:它以闪电颜色闪烁、抖动并迸出火花。持续时间 0 = 无限(电网);强度 0 = 停止。

示例: 法师碰到陷阱:对法师使用 “触电”(1 秒),“等待” 1 秒,然后 “重新开始场景”。

对象拖尾

输入: 对象, 预设, 颜色(留空 = 预设颜色), 大小(1 = 正常)

对象移动时会在身后留下一道粒子拖尾(可选择预设、颜色和大小)。设置在子弹的模板上,每发子弹都会带有拖尾。选“无”即可移除。

示例: 带发光拖尾的子弹:目标 = 子弹模板,预设“拖尾”。

创建对象

输入: 对象, X 位置, Y 位置

在位置 X, Y 创建所选对象(模板)的副本。

示例: 在指定位置放一个箱子。

淡入淡出

输入: 对象, 目标不透明度(0 到 1), 持续时间(秒)

在所选时间(秒)内,把对象的透明度平滑地变到目标值。后面的节点不会等待。

示例: 1 秒内淡出标题(目标透明度 0)。

变量与背包

修改变量

输入: 对象, 变量, 值

给变量一个新值(数字、文本、是 / 否 或计算结果)。

示例: 把“score”重置为 0。

增加变量值

输入: 对象, 变量, 要增加的值, 超过后回到 0(可选)

把数值加到变量上(负数表示减去)。文本变量则把文字加到末尾。设置“超过后回到 0”时,变量像计数器一样循环:超过 9 回到 0(小于 0 时变成 9)。

示例: 每捡一枚金币分数 + 1;密码锁的一位数字:每点一次 + 1,超过 9 回到 0。

让变量保持在两个值之间

输入: 对象, 变量, 最小值, 最大值

让变量(数字)保持在最小值和最大值之间。

示例: 生命值永远不超过 100。

随机数

输入: 对象, 变量, 介于(最小,最大)

把一个随机数放进变量。random(1, 6) 得到 1 到 6 之间的数。

示例: 掷骰子。

加入物品栏

输入: 对象, 变量

把对象放进物品栏(类型为“物品栏列表”的变量)。同一个对象只会加入一次。

示例: 捡起钥匙。

从物品栏移除

输入: 对象, 变量

把对象从物品栏中移除。

示例: 用钥匙开门。

如果在物品栏中

输入: 对象, 变量  →  输出: 真 / 假 / 然后

对象在物品栏里时走 “真” 输出,否则走 “假”。

示例: 只有钥匙在物品栏里时门才会打开。

合并两个对象

输入: 对象 A, 对象 B, 结果对象名称

用你写下名字的那个对象的副本,替换对象 A 和 B,放在 A 的位置。如果这个模板不存在,什么也不变。

示例: 木棍 + 布 = 火把。

逻辑与条件

条件

输入: 条件  →  输出: 真 / 假 / 然后

检查一个条件:成立时走 “真”,否则走 “假”。之后两种情况都会运行 “然后”。

示例: score >= 10 → 真 → 下一个场景。

如果摇杆

输出: 上 / 下 / 左 / 右 / 静止 / 然后

根据摇杆方向走对应的输出:“上”、“下”、“左”、“右”,没碰摇杆时走 “静止”。

示例: 连接到 “每帧”,朝正确方向播放行走动画。

如果在地面

输入: 对象  →  输出: 真 / 假 / 然后

对象底部站在固定且可见的对象(地面、平台)上时为 “真”,否则为 “假”。

示例: 只允许玩家在地面上时跳跃。

如果在移动

输入: 对象  →  输出: 真 / 假 / 然后

对象从上一帧起移动过时为 “真”,否则为 “假”。

示例: 只在角色移动时播放行走动画。

调用函数

输入: 函数

运行一个函数(在“函数”区域里创建的 Blueprint),然后继续。不要放在 “每帧” 下面。

示例: 多个敌人共用的“扣血”函数。

调用事件

输入: 事件名称

运行同一个 Blueprint 里这个名字的 “本地事件”,然后继续。

示例: 从掉落和计时两个地方调用“GameOver”。

顺序

输出: 1 / 2 / 3 / 4

按顺序依次运行它的输出:1,然后 2,然后 3,然后 4。没有连线的输出会被跳过。

示例: 开始时:1 = 放置玩家,2 = 播放音乐,3 = 显示分数。

冷却

输入: 对象, 延迟(秒)  →  输出: 就绪 / 还没

每个间隔(秒)内最多从 “就绪” 通过一次;否则走 “还没”。选择了对象时,每个对象有自己的间隔。

示例: 最多每 0.5 秒射击一次。

如果在屏幕外

输入: 对象, 边距(像素)  →  输出: 真 / 假 / 然后

对象完全离开屏幕(加上边距)时为 “真”,否则为 “假”。

示例: 销毁飞出屏幕的子弹。

如果 / 否则

输入: 如果(条件), 否则如果(条件)  →  输出: 如果 / 否则如果 / 否则 / 然后

先检查第一个条件,再检查第二个:走 “如果”、“否则如果” 或 “否则”。之后运行 “然后”。

示例: 如果 score >= 100 → 金牌,否则如果 score >= 50 → 银牌,否则 → 铜牌。

按值

输入: 要检测的值, 情况 1, 情况 2, 情况 3, 情况 4, 情况 5, 情况 6  →  输出: 1 / 2 / 3 / 4 / 5 / 6 / 无 / 然后

把要测试的值依次和情况 1 到 6 比较,走第一个相同情况的输出;都不相同时走 “无”。空着的情况会被跳过。

示例: 根据“武器”:1 = 剑,2 = 弓,3 = 魔杖。

文本与对话

修改文本

输入: 对象, 新文本

替换文本对象的文字。以 = 开头可以显示计算结果。

示例: ="分数:" + score

显示对话

输入: 对象, 句子名称(在游戏文字中)

从对话文件(dialogues.txt)中找到这个键对应的句子,写进文本对象。 多种语言:写 “nihao.zh = 你好”、“nihao.en = Hello”……;游戏使用变量 “langue” 中的语言,否则使用手机语言。“\n” = 换行。

示例: 键“nihao_shangren”显示商人的台词。

追加到文本

输入: 对象, 变量, 要追加的文本

把文字加到文本类型变量的末尾。

示例: 一个字母一个字母地输入密码。

移动与 AI

停止对象

输入: 对象

让对象立刻停下:不再有速度、推力、跳跃或自动移动。

示例: 冻住被冰冻法术击中的敌人。

停止移动

输入: 对象

关闭对象的自动移动:持续前进、追逐和逃跑。

示例: 玩家躲起来时,敌人停止追逐。

持续前进

输入: 对象, 速度

对象按所选速度,朝它面对的方向自动前进。

示例: 子弹或行驶中的汽车。

走向对象(寻路)

输入: 对象 A, 对象 B, 速度, 斜向移动 (是 / 否)  →  输出: 立即 / 到达

对象 A 自己找到最短的路,一格一格走向对象 B,不会穿墙(瓦片背景中的“实心”瓦片、固定的物理对象)。B 移动时会重新计算路线。A 碰到 B 时触发 “到达”。

示例: 在迷宫里追赶玩家的幽灵。

走到某个点(寻路)

输入: 对象, X 位置, Y 位置, 速度, 斜向移动 (是 / 否)  →  输出: 立即 / 到达

对象 A 沿最短的路(一格一格)绕开墙壁走到点 X、Y。用 =doigt.x 和 =doigt.y,它会走到你点屏幕的地方。到达时触发 “到达”。如果没有路,它就留在原地。

示例: 在策略游戏或地下城里,点一个格子让英雄走过去。

停止寻路

输入: 对象

对象停止沿路线移动(“走向对象(寻路)” 或 “走到某个点(寻路)”),停在原地。

示例: 游戏获胜时苍蝇停下来。

追踪对象

输入: 对象 A, 对象 B, 速度

对象 A 按所选速度自动朝对象 B 移动。

示例: 跟着玩家的幽灵。

躲避对象

输入: 对象 A, 对象 B, 速度

对象 A 按所选速度自动远离对象 B。

示例: 躲着玩家跑的小鸡。

按角度推动

输入: 对象, 角度(0 = 右,90 = 下), 力度

按所选力度,把对象朝某个方向推(角度:0 = 右,90 = 下,180 = 左,270 = 上)。

示例: 把玩家斜着弹出去的弹簧。

冲力(跳跃)

输入: 对象, 垂直力(负数 = 向上)

把对象向上(负数)或向下(正数)弹出,并给它物理效果让它落回来。

示例: 跳跃:力度 -15。

改变行为

输入: 对象, 怎么移动, 速度, 跳跃高度, 是梯子, 可拾取

在游戏中改变物体的行为,选项与检查器里的“物体行为”窗口相同:装饰、地面 / 墙、会掉落和弹跳、平台角色、巡逻(来回走)、俯视角色、用手指拖动。也可以改变速度、跳跃高度、“是梯子”和“可拾取”。保持“(不改变)”的设置会保留原值。

示例: 一个静止的箱子(地面 / 墙)在拉下拉杆时开始掉落:改变行为 → 会掉落和弹跳。

蹦跳

输入: 对象, 强度(0 = 停止), 持续时间(毫秒,1000 = 1 秒), 移动时持续(是 / 否)

让对象按所选强度和时长蹦跳(小小的视觉弹跳)。0 表示停止。可以设置成对象移动时一直蹦跳。

示例: 走路时一蹦一跳的角色。

朝向

输入: 对象 A, 对象 B, 角度偏移(度)

让对象 A 转向对象 B。角度偏移用来修正图片朝向(0 = 图片朝右)。

示例: 瞄准玩家的炮塔。

滑向

输入: 对象, X 位置, Y 位置, 持续时间(秒)

在所选时间(秒)内把对象平滑地移动到位置 X, Y。后面的节点不会等待。

示例: 移动的平台,或滑入屏幕的菜单。

网格和益智

填充网格

输入: 对象, 列数, 行数, 模板对象(名称用逗号分隔)

把对象 A(棋盘)分成若干列和行,并在每个格子里放一个随机模板对象的副本(至少 3 个模板,名称用逗号分隔)。开局时绝不会有现成的三连,方块会从上方落下。请在 “在网格上游戏(三消)” 之前使用。

示例: 开局时生成 8 x 8 的糖果网格「red, orange, yellow, green, blue, pink」。

在网格上游戏(三消)

输入: 对象, 手指 X 位置, 手指 Y 位置  →  输出: 每个被消除的方块 / 本步结束 / 交换无效

三消游戏(类似 Candy Crush)的核心,放在 “手指按住” 下面。点一个方块选中它,再点相邻的方块(或把手指滑过去)就会交换。只有连成 3 个或更多相同方块时交换才会保留,否则会换回来(“交换无效”)。每个被消除的方块都会触发 “每个被消除的方块”(相关对象就是该方块),然后消失;上面的方块落下,新的方块补上,连锁会自动发生。全部停稳后触发 “本步结束”。如果没有可走的步,网格会自动打乱。

示例: “每个被消除的方块”:加 10 分并在方块上冒火花;“本步结束”:步数减 1。

打乱网格

输入: 对象

把对象 A 网格中的所有方块换个位置,不产生三连,并保证至少有一步可走。

示例: 玩家卡住时的「打乱」按钮。

打乱位置

输入: 对象

随机交换所有带有所选标签的物体的位置(物体 A =「# 标签」)。它们的子物体会跟着移动。

示例: 在开局时打乱记忆翻牌游戏的卡片,或猜杯子游戏的杯子。

转场

画面转场(圆形、星形……)

输入: 形状, 方向, 颜色, 持续时间(秒), 中心:物体(名称;圆形、星形、菱形、爱心、主角)  →  输出: 下一步 / 立即

用一个形状盖住或揭开屏幕(19 种可选:圆形、星形、心形、幕布、时钟、棋盘、漩涡……)。“关闭”盖住屏幕并保持盖住;“打开”则揭开屏幕。“下一步”在完成后运行,“立即”马上运行。

示例: 圆形合拢 → “切换场景” → 圆形展开。想一步完成切换场景:“带转场切换场景”。

带转场切换场景

输入: 场景, 形状, 颜色, 关闭(秒), 关闭时停顿(秒), 打开(秒), 重新打开的形状, 中心:物体(名称;圆形、星形、菱形、爱心、主角)  →  输出: 无(脚本结束)

带转场地切换场景:屏幕被一个形状盖住(圆形、星形、心形、幕布、漩涡……共 19 种),新场景出现,然后屏幕重新打开。它没有输出:接下来的内容在新场景的“启动时”里设置。

示例: 碰到门:切换到“房子”场景,圆形在英雄身上合拢。

动画

播放动画

输入: 对象, 动画, 速度(帧/秒), 循环(是 / 否)

按所选速度(每秒帧数)播放对象的某个动画,可以循环或只播一次。如果已经在播放,就继续播而不重新开始。

示例: 角色前进时播放“行走”动画。

停止动画

输入: 对象

停止动画并回到它的第一帧。

示例: 角色停止行走。

暂停动画

输入: 对象

把动画暂停在当前帧。

示例: 暂停时让角色定住。

继续动画

输入: 对象

从暂停的地方继续播放动画。

示例: 暂停结束后。

动画速度

输入: 对象, 速度(帧/秒)

改变动画速度(每秒帧数),不会重新开始播放。

示例: 跑得越快 = 动画越快。

音频

播放音效

输入: 音效文件, 音量(%,100 = 最大)

播放一个音效。可以同时播放多个音效。

示例: 捡到金币时的“叮”声。

播放音乐

输入: 音乐文件, 循环(是 / 否), 音量(%,100 = 最大)

播放一段音乐,替换当前的音乐。不要放在 “每帧” 下面(它会不停地从头开始)。

示例: 开始时播放关卡音乐。

停止音乐

停止当前的音乐。

示例: Game Over 画面保持安静。

故事与对话

说一句话

输入: 谁说话, 表情, 台词, 屏幕位置, 角色出场, 效果, 声音或配音, 接下来  →  输出: 然后

对话游戏:选中的角色在对话框里一个字一个字地说出台词,玩家点击屏幕继续。角色以设定的表情出现(角色卡:图片、颜色、声音)。特殊文字:[c]颜色[/c]、[t]颤抖[/t]、[o]波浪[/o]、[p] 停顿、{score} 显示变量;“🌐 9 种语言”按钮用于翻译。

示例: Hana(开心)说“你好!”,然后 “提出选择” 给出两个回答。

提出选择

输入: 谁提问, 表情, 问题(可选), 回答 1, 回答 2, 回答 3, 回答 4, 回答条件 1, 回答条件 2, 回答条件 3, 回答条件 4, 不可用的回答, 回答 1 的图片(可选), 回答 2 的图片(可选), 回答 3 的图片(可选), 回答 4 的图片(可选), 倒计时(秒,0 = 无)  →  输出: 回答 1 / 回答 2 / 回答 3 / 回答 4 / 时间到

用大按钮显示 2 到 4 个回答:每个回答走自己的出口,故事像树一样分叉。回答可以设条件(不满足时变灰或隐藏);可选的倒计时会增加“时间到”出口。 每个回答还可以配一张图片(高级设置):回答会变成带图的大卡片。

示例: “打开宝藏”通向好结局,“离开”通向悲伤结局。

更换背景

输入: 背景图片(空 = 无), 过渡

把一张图片设为全屏背景,放在故事角色的后面(淡入淡出或直接切换)。图片留空 = 没有背景。

示例: 开始是草地,Hana 去找猫时换成森林。

显示 / 隐藏角色

输入: 角色, 他…, 表情, 屏幕位置, 角色出场

让故事角色登场(表情、位置、出场方式:淡入、滑入、跳入),改变表情或让角色离场,不说话。

示例: Hana 说话时,Lyn 从右边登场。

让角色动起来

输入: 角色, 移到…, 大小(100 = 正常,120 = 更大), 小跳次数, 持续时间(秒), 动作风格, 颤抖(发抖), 等结束后再继续

让已经在屏幕上的角色动起来:滑到另一个位置、变大或变小、小跳或发抖。可以设置时长和动作风格(匀速、平滑、先快后缓、略微过冲、弹跳)。选择“等结束后再继续”时,故事会等动作结束;否则动作的同时故事继续。角色必须先用 “显示 / 隐藏角色” 显示出来。

示例: 小花一边说“等等我!”,一边弹跳着从左边滑到右边。

小说模式(全屏文字)

输入: 要做什么?

切换到“小说模式”:文字铺满整个屏幕,背景变暗,“说一句话” 的句子像书一样一句接一句排列。页面写满后会自动翻页。“新的一页”会立刻清空;“回到对话框”则恢复平常的对话框。

示例: 用小说模式讲一段夜晚的叙述,再回到对话框进行对话。

可重播场景(画廊)

输入: 场景的开头或结尾, 场景名称(画廊)

标记一个玩家之后可以重看的场景,在 “故事标题画面” 的“结局与画廊”里(“可重播的场景”标签页)。在“场景开头”放一个:故事经过时,场景解锁并记住故事状态。在“场景结尾”放另一个:重播时故事到此结束并回到画廊。重播期间不会保存任何内容。用 “播放音乐” 播放的音乐也会在“音乐”标签页解锁。

示例: “林间空地”:与小花相遇的开头放一个,她离开之后放另一个。

结束故事

输入: 结局名称(可选:计入“结局与画廊”)

清除故事的对话框、角色和背景:游戏重新接管。如果填写“结局名称”,这个结局会被永久记住,并计入“故事标题画面”的“结局与画廊”;存档会被删除。

示例: 最后一句之后显示“小屋里的朋友”,然后回到标题画面。

友情(爱心)

输入: 谁?, 增加爱心(−1 表示减少), 爱心上限

给角色增加友情爱心(填 −1 则减少),不超过上限。故事进行时爱心显示在左上角,并飘起“+1 ❤”(可在对话样式中隐藏)。爱心随存档保存,◀ 返回时也会恢复。

示例: 选择温柔的回答“我陪着你”之后:Hana +1。

如果友情……

输入: 谁?, 为, 颗爱心  →  输出: 真 / 假

根据角色的友情爱心决定故事的走向:比较成立走“真”,否则走“假”。用来做取决于玩家如何对待角色的结局。

示例: Hana 的友情至少为 4 → 美好结局,否则悲伤结局。

故事标题画面

输入: 故事标题, 背景图片(空 = 当前背景)  →  输出: 新游戏

在图片上显示故事标题和大按钮:“继续”(从上次离开的地方接着玩,背景、角色、音乐和变量都会恢复:故事每句话都会自动存档)、“新游戏”(输出:故事的开头)和“结局与画廊”(已发现的结局和看过的背景,其余的上锁)。故事进行中,◀ 返回按钮可以回到上一句,甚至回到选择之前。

示例: 放在“开始时”之后;每个“结束故事”都回到这里。

让玩家输入文字(名字……)

输入: 变量, 问题, 默认回答

打开一个带键盘的小窗口:玩家输入文字(名字……),存入所选变量;点 OK 后继续。在台词中,{prenom} 会显示这段文字。

示例: “你叫什么名字?”→ 变量 prenom → “说一句话”“很高兴认识你,{prenom}!”。

数值(绿线)

随机数

输入: 从, 到  →  输出: 无(脚本结束)

绿色节点(数值):给出“从”到“到”之间的随机数,每次使用都会重新抽取。用设置窗口里的 🔗 按钮把它接到某个设置上。

示例: 让金币出现在 0 到 800 之间随机的 X 位置。

对象的数值

输入: 对象, 什么  →  输出: 无(脚本结束)

绿色节点(数值):在游戏中给出所选对象的一个数值:x 或 y 位置、宽度、旋转、不透明度……

示例: 把金币放到和玩家一样的高度(Y ← 对象的数值:player, y)。

变量的值

输入: 变量  →  输出: 无(脚本结束)

绿色节点(数值):在游戏中给出某个变量(分数、生命……)的当前值。

示例: 在文字里显示分数(文字 ← 变量的值:score)。

计算

输入: A, 运算, B  →  输出: 无(脚本结束)

绿色节点(数值):计算 A + B、A − B、A × B 或 A ÷ B。A 和 B 可以是数字,也可以再接一根绿线(连续计算)。

示例: 得到两倍的分数(数值 ← 计算:score × 2)。

两个对象的距离

输入: 对象 A, 对象 B  →  输出: 无(脚本结束)

绿色节点(数值):在游戏中给出两个对象中心之间的距离(像素)。

示例: 敌人靠近时让屏幕晃得更厉害。

屏幕滤镜

屏幕滤镜

输入: 滤镜, 强度(%), 出现(秒), 持续时间(秒,0 = 无限), 在下一个场景保留, 同时过滤按钮和文字(HUD), 手电筒:照亮的物体(名称;留空 = 镜头跟随的物体), 手电筒:光圈大小(%)  →  输出: 然后 / 结束时

给整个游戏(包括按钮和文字)加上一种“风格”:电视、VHS、黑白、水下、噩梦、手电筒……共 32 种滤镜可选。它会缓缓出现,持续你设定的时间(0 = 直到你停止它),还可以延续到下一个场景。“然后”立即运行,“结束时”在持续时间结束时运行。

示例: 英雄被击中:“受伤”滤镜持续 2 秒;或在山洞里使用“手电筒”。

停止滤镜

输入: 消失(秒)  →  输出: 然后 / 结束时

让当前的屏幕滤镜缓缓消失。“然后”立即运行,“结束时”在滤镜消失后运行。

示例: 英雄走出山洞:用 1 秒关掉手电筒。

新手教程 → ⬇️ 下载 Yop2D