Overview
你现在能够创建自己的关卡了!这里将会指导你如何操作。
1 – 理解关卡的原理
这些我们都清楚,但这些方块是如何 生成的呢?
首先,我们需要理解游戏会如何读取关卡数据。
每个关卡都会以像这样的文本文件的形式来存储:
文件中的每一行都是一个命令,而命令的第一个参数是这条命令被执行的时间。
值得特别注意的是,这里的数值是指音轨的时间, 而 而不一定是右上角显示的计时器时间。.
举个例子:
第一行中,音轨开始播放4.34秒后,我们创建了一个坏人方块,从下方袭来,速度为50。
第二行中,音轨开始播放 4.5 秒后,我们创建了另一个坏人方块,从右侧袭来,速度50。
第三行中,音轨开始播放4.68秒后,我们创建了一个好人方块,从左侧跑来,速度50。
因此,用来生成方块的指令结构会像这样:
还记得每个关卡都有独特的机制吗?这样的指令就是我们用来激活/关闭这些特殊模式用的。
Split 听上去是不是有点熟悉呢?如果还想不起来的话,看看这个:
这行的意思是,在5.90秒处,激活 split 机制。你应该指导这里的 1 表示激活,而0表示关闭。
用于激活/关闭特殊模式的指令结构非常简单:
现在除了标有 rotation 的那些行还有一些数字令人费解外,所有的指令看起来用途应该都显而易见了。
这里的 1.2 是用来告诉墙壁旋转多少次的。
如果还有不明白的地方,请告诉我们!
2 – 关卡原理 – 第二部分
在教程的第一部分中,我们已经介绍了一些基本知识。但是,为了完全理解关卡的原理你还需要了解更多的信息。
关卡结束后会显示评级,依据玩家获得的最高连击数从 C 到 A+ 不等。
这样的兮兮你会在关卡文件的开头部分设定:
每个评级旁边的数字用来设定需要达到多少连击才获得对应的评级。
咱们举个例子:
- 如果玩家最高连击为1,则获得C级。
- 如果玩家最高连击为100,获得B级。
- 如果玩家最高连击为180,获得A级。
- 如果玩家最高连击为286,获得A+级。
通常,玩家只有获得完美连击才能获得 A+ 级评价,因此, 该连击数必须设定成所有好人和坏人数量的总和。
关卡可以划分成多个段落。
当新段落开始时,房间的背景颜色会切换。
当前段落的指令执行完毕后,游戏就会切换到下一个段落。
下图展示了关卡文件如何开始以及如何划分成段落:
你可以看到,关卡文件开头部分是评级数据,而后你会看到头两个段落。
游戏执行指令的方式我们前文中已经介绍过。
这里的 none 指令只有一个目的,将段落切换延迟到 none 指令插入的时间点。
本例只能,第一个段落最后一个方块生成于 2.82 秒处,但游戏直到 3.2 秒的 none 指令处才切换到下一个段落去。
如果我们不使用 none 指令,只要最后一个方块一生成,游戏就会立即切换段落,而背景颜色也会变化,然而此时上一个段落生成的最后一个方块却依然存活,这会造成问题。
因此,这一点非常重要:每个段落的最后一个指令都需要使用 none 指令。
好啦,这部分教程介绍的内容已经相当多了。:)
如果有任何问题,欢迎告诉我们。
3 – 特殊指令
我们还增加了一些特殊指令让关卡变得更加有趣:
你注意到墙壁和玩家有时会出现某种脉动效果吗?
使用 pulsing 指令,你可以开启/关闭这种效果。
你可能也会希望计时器中断计时,使用 counting 就可以进行控制。不过请记住关卡文件中使用的是音轨时间而非显示在右上角的计时器时间。
使用 settimer 可以直接设置指定的计时器时间。数值必须小于 64,因为当计时达到63秒后,关卡就会完成。
也可以因此和显示计时器。非常方便。
你也可以通过 message 指令来插入想对玩家说的话,也可能是试玩你关卡的男/女朋友。
你必须指定信息显示的持续时长。
你注意到每次尝试关卡时它并不是完全一样吗?因为我们使用指令 spawnrotation 旋转了方块袭来的方向。
这条指令能够通过增加一个旋转角度来改变方块袭来的方向。
指令格式如下所示:
– 如果使用数值 (0, 90, 180, 270),则方块总会从邻接当前方向的位置袭来。
– 但你也可以通过设定下列数值使得旋转方向随机出现:
- 0 意味着不旋转角度,因此方块还会以原有方向袭来。
- -1 意味着会随机选取 0,90,180或 270 等角度中的随机一个,然后方块会依据选定角度从该方向袭来。
- -2 意味着会随机选取0或180度,然后方块会从选定角度对应的方向袭来。
- -3意味着会随机选取0或270度,然后方块会从选定角度对应的方向袭来。
- -4 意味着会随机选取0或 90度,然后方块会从选定角度对应的方向袭来。
注意:使用 spawnrotation 会影响整个关卡,而非当前的段落。因此,如果只是想要旋转特定方块的方向,那么请在特定方块生成指令之后调用 spawnrotation 指令将其重置为0,以恢复默认方向。
同样,如果有任何问题欢迎询问我们 <3
4 – 使用游戏内置编辑器
感谢耐心阅读!终于到了最有意思的部分了。
基本上,编辑器实际等同于你在玩一个伴随着音轨播放却没有方块的空关卡。而你可以按想象中的关卡来玩游戏,而编辑器则会记录下来对应的按键并生成关卡文件,包含所有的指令,需要你重复创建时的操作才能完成。
每个关卡长度为64秒,必须同64秒的音轨配对,因为结束关卡的指令依赖音轨长度。也就是说,创建关卡前必须有一首乐曲。没有乐曲,就无从创建关卡。
如果你使用 Windows 系统,那么前往 Documents 文件夹,寻找一个名为 rebel rabbit 的文件夹,在文件夹下有一个名为 64.0 的文件夹。
如果你使用 Mac 系统,那么前往 Users/<your user> 文件夹,寻找一个名为 rebel rabbit 的文件夹,在文件夹下有一个名为 64.0 的文件夹。
如果出于某种原因你没有找到这些文件夹,可以手动自己创建。
Sorry for the spanish.
总之,这两个文件夹非常关键: editor 和 levels。
– levels 文件夹用来存放你创建的关卡文件,这样游戏就能正常载入它们以及对应的歌曲文件。
– editor 文件夹则是你使用内置编辑器自动生成的关卡。
为了使用内置的编辑器,请确保准备一首格式为 .mp3 或 .ogg 的音乐文件,并将其放入 editor/song 路径下。
Windows系统中支持所有格式,而Mac系统下仅支持 .ogg 格式。然而,我们依然在尝试支持 .mp3 格式。如果您是 Mac 用户,请耐心等待我们的后续更新。
现在,你以及将歌曲放入了 editor 路径下,让我们打开内置编辑器。
从主菜单进入自定义关卡菜单。
选左边打开编辑器。
打开编辑器后,游戏将会载入你放入 editor 文件夹的歌曲。此时游戏会冻结以小段时间,这是我们使用的 mp3 库导致的,暂时还没有找到避免这种情况出现的方法。:(
正如我们之前提到的,在编辑器模式下播放音轨时,任何输入操作都会被记录。当按右侧时,编辑器会记录你按键的时间,进行一些计算后生成对应的指令,最终形成自动生成的关卡文件。
你可以使用键盘或手柄来进入射击输入。无论是哪一种输入游戏都能正常记录。
然而,有一些特殊操作仅仅使用键盘才能完成。
– 按下空格可以开始新的段落,在游戏中的效果即切换颜色。
– 按 1(键盘字母区上方的1,并非数字小键盘的1)来激活/关闭 blinking 效果。
– 按2 来激活/关闭 split 效果。
– 按3 来激活/关闭 rotation 效果。
– 按 4 来激活/关闭 area 效果。
– 按 ESC 离开编辑器,这样做会删除自动生成的关卡。
[h1录音完成后的操作[/h1]
当计时器满64秒后,自动生成的关卡文件会被保存到 editor 文件夹下,并以 autolevel 命名。
现在你就拥有自己的关卡了。
5 – 尝试自己的关卡
现在你拥有自制关卡了。恭喜!
当然,你有可能会希望将自己的关卡命名为“超厉害新关卡”之类的名字。
前往levels文件夹,并创建一个名为“超厉害新关卡”的文件夹。在新文件夹内,放入 autolevel文件和对应的歌曲,并将其全部重命名为“超厉害关卡”。
类似这样:(记住你也可以使用 .mp3 文件)
- 在关卡文件夹内,创建一个空文件夹,并命名为你希望创建的关卡名。
- 将 autolevel.json 文件和你需要载入的乐曲复制到你刚才创建的关卡文件夹内。
- 将其重命名为文件夹的名字。
关卡文件夹,关卡文件和音轨必须使用相同名字,否则不会正常工作。
现在,我们可以为自动生成的关卡增加丰富的细节。
你需要准备一个文本编辑器,请不要使用 windows 自带的 notepad,那很容易导致一系列问题。
推荐使用 WordPad 或者 Sublime Text [www.sublimetext.com].
修改文件,保存文件,重新载入关卡。所有的改变会立即生效。
你可以增添,删除或者修改数值。它应该都能正常工作。然而,请注意这些字符 “[,]”, ”{,}”,因为他们对文件格式很重要,注意不要随意修改它们导致文件格式错误。
基本上就是这些了。现在你已经可以玩你自己制作的关卡了:)
6 – 分享关卡
也许你会希望向全世界的玩家展示你制作的关卡有多棒。
试着学习这里的指南来分享你自制的关卡吧: