下载客户端

关卡编辑器脚本指南

2026-04-08 04:00:17
发布在VVVVVV
转载

AI智能总结导读

这是一份《VVVVVV》关卡编辑器脚本指南,介绍了脚本的定义、简化脚本与内部脚本的区别,推荐了高效关卡编辑工具VED,详细讲解简化脚本的制作编辑方法、各类命令功能,还给出脚本示例,同时简要说明内部脚本的常见功能,帮助用户为自定义关卡编写脚本。

本指南将教你如何为自己的自定义关卡编写脚本。 什么是脚本? 如果你已经了解《VVVVVV》的脚本工作原理,只是想查找函数参考,可以跳过此部分。 脚本是为关卡添加高级功能的一种方式,无论是对话、过场动画还是复杂的游戏机制。脚本本质上是一系列代码行,当进入脚本框或与终端交互时执行。 标准的脚本编写方法(称为“简化脚本”)简单易用,但功能有限。若要实现更复杂的功能,你可以使用内部脚本,但这种方式更容易出错且操作难度更大。本指南将详细解释所有简化功能,并简要说明一些常见的内部脚本功能。 VED 虽然《VVVVVV》内置的关卡编辑器运行良好,但有一些外部工具可以极大地提高你的制作效率。其中最著名的可能就是VED。VED提供了各种用于制作更好关卡的工具,尤其是在脚本编写方面。 制作和编辑脚本 假设你已经了解编辑器的基本操作,那么这部分内容对你来说应该不难。 选择【终端】工具(快捷键:T)或【脚本框】工具(快捷键:Y)。终端是一种类似电视的可交互对象。歌曲标题 简化版ID 内部ID 寂静(停止音乐) 0 无 勇往直前(太空站) 1 1 正能量(高塔) 2 2 无限可能(实验室) 3 3 探索热情(外部区域) 4 4 VVVVVV开场曲(标题画面) 5 6 命中注定(幕间) 6 8 流行集锦(制作人员名单) 7 10 白日梦(秘密实验室) 8 11 压力 cooker(扭曲区域) 9 12 节奏能量(未使用) 10 13 刺破天空(未使用) 11 14 路径完成(收集品) 无 0 暂停 无 5 全会(结局) 无 7 ecroF evitisoP(未使用) 无 9 命中注定混音版(终章) 见下方说明* 15 *若要在简化脚本中播放,请使用“playremix”命令 脚本示例 脚本很适合用来尝试各种效果,但它们具体应该在什么时候使用呢?以下是一些脚本示例及其功能说明。此脚本用于播放一段对话场景,其中朱红与翠绿进行对话,每位船员的对话框之间有短暂停顿。 say(2,red) 欢迎来到VVVVVV!这是一款平台跳跃游戏,不过你不能跳跃,只能翻转。 delay(10) reply(1) 哦,听起来挺酷的。 delay(10) say(2,red) 简直太棒了!真想知道是谁想出了这么个点子? 这两个脚本会检查标记16是否激活。如果激活,就会移除重力线,让玩家能够继续前进。如果未激活,维多利亚会告诉玩家去和附近某处的终端对话。 ifflag(16,remove_lines_script) say(2,blue) 看来我们漏掉了什么东西。试着在附近找找终端吧。 remove_lines_script: destroy(gravitylines) flash 这三个脚本会检查标记44是否激活。如果是这样,系统将激活一个脚本,检查玩家是否已拥有5个饰品。若玩家拥有5个饰品,房间内所有传送代币将被销毁,音乐将切换为【Pressure Cooker】并伴随闪光效果。若任何检查失败,终端会提示玩家。 sc1: ifflag(44,sc2) say(1,grey) 标记检查失败。 sc2: iftrinkets(5,sc3) say(1,grey) 饰品检查失败。 sc3: destroy(warptokens) music(9) flash 内部脚本 内部脚本是基础游戏使用的系统。它并非为关卡编辑器设计,但有一些变通方法可以访问。强烈建议使用VED进行内部脚本编写。本指南不涉及如何在标准编辑器中使用内部脚本。以下是一些内部命令的基本列表。有关更完整的列表,请前往相关网站。 警告:内部脚本存在危险!你应查看VED中的内部命令列表或相关网站,确认你想使用的功能是否存在风险!为将危险降至最低,请使用最新版本的游戏。 createentity:创建实体。有时需要非常特定的参数才能生效。 createentity(x,y,n,a,b) x = 像素单位的X坐标 y = 像素单位的Y坐标 n = 实体ID a = 属性1 b = 属性2 cutscene:使过场动画黑边出现。 cutscene() endcutscene:使过场动画黑边消失。 endcutscene() flash:使屏幕闪烁。与简化脚本不同,此命令不会播放声音或使屏幕震动。 flash(n) n = 闪烁持续的刻数 gotoposition:在当前房间内设置维里迪恩的位置和重力方向。请注意,(0, 0)位于左上角。 gotoposition(x,y,g) x = x坐标(像素),从0开始 y = y坐标(像素),从0开始 g = 重力(0 = 正常,1 = 翻转) gotoroom立即将维里迪安移动到另一个房间。请注意,(0, 0)位于左上角。 gotoroom(x,y) x = 房间x坐标,从0开始 y = 房间y坐标,从0开始 ifexplored如果房间已探索(在地图上可见),则运行脚本 ifexplored(x,y,s) x = 房间x坐标,从0开始 y = 房间y坐标,从0开始 s = 要运行的脚本 do开始循环。运行代码直到“loop”命令达到指定次数 do(n) n = 循环次数 loop结束由“do”开始的循环 loop play播放音乐曲目。播放(n) n = 音乐曲目ID(参见列表参考部分) 播放音效 播放音效(n) n = 音效ID(使用VED或在线搜索音效ID列表) 屏幕震动 屏幕震动(n) n = 震动持续的滴答数 等待过场动画边框 等待过场动画边框() 课程结束 好了,现在你应该已经掌握了制作自己脚本所需的全部知识。当然,如果你打算发布自己的关卡供他人游玩,那么在编写内容时要合理适度。 编程愉快!脚本区域是进入时会触发脚本的不可见区域。 放置终端会立即提示你输入脚本名称,但脚本区域需要你先定义左上角和右下角。 输入脚本名称。名称要简短但有意义,因为这是你之后引用脚本的方式。输入现有脚本的名称可以将同一脚本链接到多个对象。按回车键关闭提示。 创建脚本后,打开菜单并选择【编辑脚本】。(警告:画面会非常亮。)这将打开脚本列表,你可以从中选择要编辑的脚本。 进入编辑器后,就可以开始编写脚本了! 简化功能 2.4版本中可用的所有简化脚本功能say 创建文本框。用于创建对话段落。此命令后的行包含将在文本框中显示的文本。确保行数与传递给函数的数字相等。如果两个参数都留空,将默认使用1行和灰色。 say(n,c) n = 文本行数。必须与你输入的行数匹配。 c = 文本框颜色。可选颜色:青色、红色、蓝色、绿色、黄色、粉色、灰色 reply 与say类似,但用途略有不同。它始终设置为青色,并且优先显示玩家角色Viridian而非船员Viridian。(你可以将Viridian放置为船员,而颜色设为青色的say命令会将文本框放置在船员Viridian附近。)若参数留空,默认值为1行。 reply(n) n = 文本行数 delay暂时暂停脚本。延迟结束前,下一个函数不会执行。延迟以“ticks”为单位,大约30 ticks等于1秒(准确来说,30 ticks实际为1.02秒) delay(n) n = 等待的ticks数 flash使屏幕闪烁并播放传送器使用的音效。无参数。 flash music更改当前正在播放的音乐曲目。 music(n) n = 音乐曲目ID(曲目ID列表请参考“列表参考”部分) playremix播放“Predestined Fate Remix”音乐曲目,该曲目在最终关卡播放。无参数。 playremix destroy这将销毁房间内该对象的所有实例。destroy(x) x = 要销毁的对象名称。可以是“warptokens”“gravitylines”“moving”或“disappear”。“platforms”也是一个选项,但不建议使用,因为可能会导致异常行为。 happy 让船员开心。 happy(c) c = 颜色(颜色列表请参见列表参考部分,或使用“all”来影响所有人) sad 让船员难过。 sad(c) c = 颜色(颜色列表请参见列表参考部分,或使用“all”来影响所有人) squeak 这会让船员发出吱吱声(说话声)。 squeak(c) c = 颜色(颜色列表请参见列表参考部分,或使用“on”使其在文本框出现时触发) speaker 设置使用say命令创建的下一个文本框的颜色和位置。这可以用来替代向say命令传递第二个参数。speaker(c) c = 颜色(颜色列表请参考列表参考部分) flag设置旗帜状态。 flag(n,v) n = 旗帜编号(0-99中的任意数字) v = 状态("on"表示开启,"off"表示关闭) ifflag检查旗帜状态,若旗帜为开启状态则运行另一个脚本,否则正常继续。 ifflag(n,s) n = 旗帜编号(参见"flag"函数) s = 要运行的脚本 iftrinkets检查玩家是否收集了特定数量的饰品。如果是,则运行另一个脚本。否则脚本将继续,另一个脚本不会运行。iftrinkets(n,s) n = 要检查的收集品数量(这是最小值,因此如果玩家拥有的数量超过此值,仍会运行第二个脚本) s = 要运行的脚本 iftrinketsless检查玩家收集的收集品是否少于特定阈值。如果是,则运行另一个脚本。否则,脚本将继续运行,另一个脚本不会运行。 iftrinketsless(n,s) n = 要检查的收集品数量(这是最小值,因此如果玩家拥有的数量超过此值,仍会运行第二个脚本) s = 要运行的脚本 map切换地图的可见性。其工作方式类似于基础游戏中的间歇关卡。 map(s) s = 开启/关闭 warpdir更改房间内的传送方向。warpdir(x,y,d) x = 目标房间X坐标 y = 目标房间Y坐标 d = 传送方向(0=无传送,1=水平,2=垂直,3=全方向) ifwarp 检查特定房间的传送方向。如果与提供的方向匹配,则运行另一个脚本。否则,脚本正常继续。 ifwarp(x,y,d,s) x = 目标房间X坐标 y = 目标房间Y坐标 d = 传送方向(0=无传送,1=水平,2=垂直,3=全方向) s = 要运行的脚本 loadtext 通过语言代码加载关卡的翻译(例如,“fr”或“pt_BR”) loadtext(c) c = 语言代码 iflang 如果VVVVVV设置中设置的语言(不受loadtext影响)等于c,则运行另一个脚本。 iflang(c,s) c = 语言代码 s = 要运行的脚本 setfont 更改文本使用的字体。留空可恢复为默认字体。 setfont(f) f = 字体 setrtl切换文本右对齐。默认关闭。 setrtl(b) b = "on"(开启)或"off"(关闭) textcase即将推出 列表参考 本部分包含对接受枚举值的函数选项的参考。 颜色 名称 船员 青色 翠绿色 红色 朱红色 绿色 铜绿色 蓝色 维多利亚蓝 黄色 蛋黄色 粉色 紫罗兰色 灰色 不适用 音乐曲目注意:简化脚本和内部脚本使用不同的ID来引用音乐曲目。此表格包含两种ID。

评论

共0条评论
face
inputImg
相关阅读
最新更新

最新更新

  • 关卡编辑器脚本指南 — 本指南将教你如何为自己的自定义关卡编写脚本。 什么是脚本? 如果你已经了解《VVVVVV》的脚本工作原理,只是想查找函数参考,可以跳过此部分。 脚本是为关卡添加…