forked from RDCNWebs/rd.rdlevel.cn
- 修复了一些死链
- 添加了新的 otto 插图(没错作者又更了)并修改了更换逻辑
This commit is contained in:
parent
564e867e04
commit
9e1153417b
BIN
images/otto-traditional.png
Normal file
BIN
images/otto-traditional.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 MiB |
@ -46,7 +46,7 @@
|
||||
| 翻转屏幕 | `N` | [视觉干扰](../pages/vfx.md) | 上下,左右,或是中心反转屏幕 |
|
||||
| 脉冲摄像机 | `P` | [轨道视效](../pages/rowfx.md#和轨道相关的特效) | 添加一个按一定时间和频次缩放画面的效果 |
|
||||
| **视效类** | | | |
|
||||
| 预设特效 | `V` | [ex2](../appendix/2.html) | 插入编辑器预置的特效 |
|
||||
| 预设特效 | `V` | [ex2](../pages/appendix_vfxs.md) | 插入编辑器预置的特效 |
|
||||
| 设置速度 | `S` | [轨道视效](../pages/vfx.md#设置速度) | 改变整个画面中物件及特效的运行速度 |
|
||||
| 闪烁 | `F` | [轨道视效](../pages/rowfx.md#适合配合轨道或节拍一起使用的特效) | 简单地屏幕闪烁 |
|
||||
| 自定义闪烁 | `U` | [轨道视效](../pages/rowfx.md#适合配合轨道或节拍一起使用的特效) | 自定义屏幕闪烁的图层位置,颜色,透明度 |
|
||||
@ -72,10 +72,11 @@
|
||||
|
||||
| 功能 | 快捷键 | 章节 | 内容 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 移动精灵图 | `O` | [自制角色与精灵资源](../pages/spritesheet.md#移动精灵图) | 设置精灵的位置、大小、角度、轴点 |
|
||||
| 绘制精灵图 | `T` | [自制角色与精灵资源](../pages/spritesheet.md#绘制精灵图) | 设置精灵的边框、涂色、透明度 |
|
||||
| 播放表情 | `P` | [自制角色与精灵资源](../pages/spritesheet.md#播放表情) | 播放精灵的表情 |
|
||||
| 显示/隐藏 | `V` | [自制角色与精灵资源](../pages/spritesheet.md#显示/隐藏) | 显示或隐藏精灵 |
|
||||
| 移动精灵图 | `O` | [自制角色与精灵资源](../pages/decoration.md#移动精灵图) | 设置精灵的位置、大小、角度、轴点 |
|
||||
| 绘制精灵图 | `T` | [使用精灵](../pages/decoration.md#绘制精灵图) | 设置精灵的边框、涂色、透明度 |
|
||||
| 播放表情 | `P` | [使用精灵](../pages/decoration.md#播放表情) | 播放精灵的表情 |
|
||||
| 显示/隐藏 | `V` | [使用精灵](../pages/decoration.md#显示/隐藏) | 显示或隐藏精灵 |
|
||||
| 平铺精灵图 | `V` | [使用精灵](../pages/decoration.md#平铺精灵图) | 显示或隐藏精灵 |
|
||||
| 注释 | `M` | [标签](../pages/tag.md#让事件摆放更有条理) | 添加注释内容或插入注释型自定义方法 |
|
||||
|
||||
## 黄色版块(房间)
|
||||
|
||||
@ -8,35 +8,27 @@
|
||||
|
||||
### 带X拍子
|
||||
|
||||
在编辑器中翻译为X字拍子。心跳有时候会**跳过一些拍子**,但我们仍然需要在拍子抵达时抓住时机按键。当电图线路上出现**红色的X字**时,就意味着这些拍子会被跳过。这个时候你需要在头脑里继续数数,然后照常在第普通拍处按键。
|
||||
在编辑器中翻译为X字拍子。心跳有时候会**跳过一些拍子**,但我们仍然需要在拍子抵达时抓住时机按键。当电图线路上出现**红色的X字**时,就意味着这些拍子会被跳过。这个时候你需要在头脑里继续数数,然后照常在第二拍处按键。
|
||||
|
||||
在`1-2 亲密`中被首次引入,且在大量关卡中出现。
|
||||
|
||||
<details><summary><strong>在剧情模式中出现过的一些带X拍子</strong></summary>
|
||||
<ul>
|
||||
<blockquote>
|
||||
<code>
|
||||
----xx ---♥ -----x ---♥ xx---- ---♥<br>
|
||||
<details><summary><strong>在剧情模式中出现过的一些带X拍子</strong></summary><ul><blockquote><code>----xx ---♥ -----x ---♥ xx---- ---♥<br>
|
||||
-x-x-x ---♥ -xx-xx ---♥<br>
|
||||
--x--x ---♥ ---xxx ---♥<br>
|
||||
----x- ---♥ ---x-- ---♥<br>
|
||||
-x--x- ---♥<br>
|
||||
-x---- ---♥ -x---x ---♥ ---x-x ---♥<br>
|
||||
--x-x- ---♥ --x--- ---♥ --x-xx ---♥<br>
|
||||
</code>
|
||||
</blockquote>
|
||||
</ul>
|
||||
</details>
|
||||
--x-x- ---♥ --x--- ---♥ --x-xx ---♥<br></code></blockquote></ul></details>
|
||||
|
||||
### 摇摆普通拍子
|
||||
|
||||
也称心脏梗阻。他们的心跳会出现不规则的拍子,因为心跳信号的工作不正常,节拍也会呈现不规则的感觉。无论如何,也请在第普通拍按下空格。
|
||||
也称心脏梗阻。他们的心跳会出现不规则的拍子,因为心跳信号的工作不正常,节拍也会呈现不规则的感觉。无论如何,也请在第二拍按下空格。
|
||||
|
||||
在`3-3 分离二重唱`中被首次引入。
|
||||
|
||||
### 网好卡菌
|
||||
|
||||
在编辑器中应设置为电击拍子。无论发生什么都要在音乐的第普通拍按下空格。
|
||||
在编辑器中应设置为电击拍子。无论发生什么都要在音乐的第二拍按下空格。
|
||||
|
||||
在`1-X 东方不眠夜`中被首次引入。
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
## 设置游戏音效
|
||||
|
||||
除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第普通拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。
|
||||
除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第二拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。
|
||||
|
||||
这些音效在设置的时候是无法下拉列表选择更改的,只能通过键入游戏内置的音效文件名,或者导入自定义的音效来改变。目前已公开的内置音效文件名因为数量太多,集中收录在了[附录3](../appendix/3.html)中。
|
||||
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
# 更新信息
|
||||
|
||||
#### 2025-06-08
|
||||
- 修复了一些死链
|
||||
- 添加了新的 otto 插图(没错作者又更了)并修改了更换逻辑
|
||||
|
||||
#### 2025-06-01
|
||||
- 修复了一些小问题,更正了一些错别字
|
||||
|
||||
|
||||
@ -49,14 +49,14 @@
|
||||
</div>
|
||||
|
||||
<!--
|
||||
| 普通拍子轨道 | 人物 | 前六拍左侧 | 前六拍中段 | 第普通拍左侧 | 第普通拍右侧 | 心脏之前 | 心脏 |
|
||||
| 普通拍子轨道 | 人物 | 前六拍左侧 | 前六拍中段 | 第二拍左侧 | 第二拍右侧 | 心脏之前 | 心脏 |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| 轨道1 | -0.5 | 1 | 0.5 | 1 | 0 | -2 | -2.5 |
|
||||
| 轨道2 | -10.5 | -9 | -9.5 | -9 | -10 | -12 | -12.5 |
|
||||
| 轨道3 | -20.5 | -19 | -19.5 | -19 | -20 | -22 | -22.5 |
|
||||
| 轨道4 | -30.5 | -29 | -29.5 | -29 | -30 | -32 | -32.5|
|
||||
|
||||
| 单发拍子轨道 | 人物 | 前六拍左侧 | 前六拍中段 | 第普通拍左侧 | 第普通拍右侧 | 心脏之前 | 心脏 |
|
||||
| 单发拍子轨道 | 人物 | 前六拍左侧 | 前六拍中段 | 第二拍左侧 | 第二拍右侧 | 心脏之前 | 心脏 |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
-->
|
||||
**删除**:删除这个精灵。
|
||||
@ -99,7 +99,7 @@
|
||||
## 显示/隐藏
|
||||
显示/隐藏可以更改精灵的显示或隐藏状态。建议在初始状态设置为隐藏,在需要的时候改为可见,用完之后继续隐藏。
|
||||
|
||||
## 瓷砖精灵图
|
||||
## 平铺精灵图
|
||||
瓷砖精灵图可以让精灵直接做成平铺状态,但是保持原像素大小。
|
||||
|
||||
**平铺:**把原图平铺成长宽各多少份。
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||

|
||||
|
||||
**\|<<:**一般是会倒退到最左边的,如果你添加了书签(在下面有介绍),就会倒退到最近的一个书签处。
|
||||
**|<<:**一般是会倒退到最左边的,如果你添加了书签(在下面有介绍),就会倒退到最近的一个书签处。
|
||||
|
||||
**\|<:**回到上一小节,也就是倒退到上一个数字的位置,**该功能仅在暂停播放时有效**。
|
||||
|
||||
@ -46,7 +46,7 @@
|
||||
|
||||
最右边的按钮就是跟随进度条,会让时间轴在播放音乐时保持在工作区的正中间。
|
||||
|
||||
下方带有阿拉伯数字的区域是标尺栏,`左键点击`可以跳转至相应小节的开头。`右键点击`可以放一个蓝色书签。放置书签后,点击前面介绍的倒带 **\|<<**,则会跳到这个标签位置。按住`Ctrl`或者`Shift`再`鼠标右键`点击书签可以改变颜色,支持蓝、绿、黄、红四种颜色循环切换。进度条上也会显示书签的位置。
|
||||
下方带有阿拉伯数字的区域是标尺栏,`左键点击`可以跳转至相应小节的开头。`右键点击`可以放一个蓝色书签。放置书签后,点击前面介绍的倒带,则会跳到这个标签位置。按住`Ctrl`或者`Shift`再`鼠标右键`点击书签可以改变颜色,支持蓝、绿、黄、红四种颜色循环切换。进度条上也会显示书签的位置。
|
||||
|
||||

|
||||
|
||||
|
||||
@ -16,11 +16,11 @@ eb.PulseFreeTimeBeat 6 0[pulse=9];
|
||||
eb.PulseFreeTimeBeat 7 0[pulse=9];
|
||||
```
|
||||
|
||||
我们选中数字1对应的节拍,发现这个是设置起始脉冲位置的。你甚至可以将它改为第普通拍,然后把六个小的`>`删掉,这样就没有任何节拍提示。如果你设计的关卡是一个和节奏医生没什么关联的创意谱(梦幻联动?),且按键密度很大,则可以考虑这样使用。相比于工作区里面重叠摆放一大堆普通普通拍子,这样会看上去更清爽。但如果你设计的就是节奏医生,**请不要在完全无节奏提示的情况下直接响起第普通拍**。
|
||||
我们选中数字1对应的节拍,发现这个是设置起始脉冲位置的。你甚至可以将它改为第二拍,然后把六个小的`>`删掉,这样就没有任何节拍提示。如果你设计的关卡是一个和节奏医生没什么关联的创意谱(梦幻联动?),且按键密度很大,则可以考虑这样使用。相比于工作区里面重叠摆放一大堆普通普通拍子,这样会看上去更清爽。但如果你设计的就是节奏医生,**请不要在完全无节奏提示的情况下直接响起第二拍**。
|
||||
|
||||

|
||||
|
||||
剩下的大于号`>`即意味着心跳向右移动一格,数到7的时候则需要按拍。点选之后,把它改成 `<`,心跳还能向左移动一格;点击自定义,还可以任意指定到第几个节拍。每一组自由拍**必须使用较大的节拍作为开头**,较小的则数量不限,直到数到第普通拍为止。
|
||||
剩下的大于号`>`即意味着心跳向右移动一格,数到7的时候则需要按拍。点选之后,把它改成 `<`,心跳还能向左移动一格;点击自定义,还可以任意指定到第几个节拍。每一组自由拍**必须使用较大的节拍作为开头**,较小的则数量不限,直到数到第二拍为止。
|
||||
|
||||
```rdview 10 2
|
||||
eb.AddFreeTimeBeat 1 0[pulse=1];
|
||||
@ -41,7 +41,7 @@ eb.PulseFreeTimeBeat 9 0[pulse=9];
|
||||
|
||||
如果你想让一串自由节拍最后不需要按拍,而是节奏直接消失,就把这一组自由节拍的最后一个点选**垃圾桶**符号。
|
||||
|
||||
> 如果你设计了一段无法数到第普通拍的节奏且不放置垃圾桶,那么心电图就会一直停在轨道中间。这很诡异。
|
||||
> 如果你设计了一段无法数到第二拍的节奏且不放置垃圾桶,那么心电图就会一直停在轨道中间。这很诡异。
|
||||
|
||||
接下来介绍一些社区机制。社区玩家们通过合理设计自由拍,并加以适当的提示,创造出了一些全新的节奏类型。其中一些节奏被广泛使用,并在社区中形成共识,从而延续下来。使用这些机制制作自定义关卡无需额外设计教学环节。当然如果你担心玩家不了解社区,或是你有其它自己的想法,也可以为这些节奏类型自行设计节奏提示的方法,唯一的宗旨是保证提示恰当准确。
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ eb.AddOneshotBeat 5 1[tick=0.75,loop=3,interval=1];
|
||||
|
||||
## 单发拍子护士提示
|
||||
|
||||
单发拍子与普通拍子不同之处在于,普通拍子可以观察前六次脉冲,推测出第普通拍的正确按键时机;但单发拍子只有一次脉冲,玩家无法仅通过单发拍子的脉冲得知按键时机。因此,为了能让玩家正确击打单发拍子,**必须为单发拍子添加护士提示**。
|
||||
单发拍子与普通拍子不同之处在于,普通拍子可以观察前六次脉冲,推测出第二拍的正确按键时机;但单发拍子只有一次脉冲,玩家无法仅通过单发拍子的脉冲得知按键时机。因此,为了能让玩家正确击打单发拍子,**必须为单发拍子添加护士提示**。
|
||||
|
||||

|
||||
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||

|
||||
|
||||
将左边的可见房间点亮为黄色,屏幕上就会显示这个房间,高度可以自定义,填写数据后房间高度将自动分配。详细的分配规则点击下方箭头展开。如果你懒得理解分配规则,只需永远保证**不点亮多余的房间,并且将存在的房间高度总和设置到100%**即可。
|
||||
将左边的可见房间点亮为黄色,屏幕上就会显示这个房间,高度可以自定义,填写数据后房间高度将自动分配。详细的分配规则点击下方箭头展开。如果你懒得理解分配规则,只需永远保证 **不点亮多余的房间,并且将存在的房间高度总和设置到100%** 即可。
|
||||
|
||||
### 房间分配规则
|
||||
- 如果全部不填,那么
|
||||
|
||||
@ -4,6 +4,13 @@ var isHidingTips = false;
|
||||
var show = true;
|
||||
var anim;
|
||||
var tipTexts = [""];
|
||||
var ottos = [
|
||||
"/images/otto-wyym.png",
|
||||
"/images/otto-rd2.png",
|
||||
"/images/otto-rd2-xmas-compressed.png",
|
||||
"/images/otto-traditional.png",
|
||||
]
|
||||
var ottoIndex = 0;
|
||||
|
||||
function showOtto(callback) {
|
||||
node.style.opacity = 1;
|
||||
@ -38,26 +45,18 @@ window.onload = function () {
|
||||
showOtto()
|
||||
}
|
||||
|
||||
window.$docsify.onLightDarkModeChange = function () {
|
||||
if (show) {
|
||||
if (anim.playState != "running")
|
||||
hideOtto(() => {
|
||||
image.src = getCurrentImage();
|
||||
showOtto();
|
||||
});
|
||||
}
|
||||
else
|
||||
image.src = getCurrentImage();
|
||||
}
|
||||
|
||||
window.$docsify.onOttoShow = function () {
|
||||
if (!anim.playState || anim.playState != "finished") {
|
||||
return;
|
||||
}
|
||||
show = !show;
|
||||
if (show) {
|
||||
image.src = getCurrentImage();
|
||||
showOtto();
|
||||
} else {
|
||||
hideOtto();
|
||||
ottoIndex++;
|
||||
}
|
||||
}
|
||||
function addOtto(document) {
|
||||
@ -120,13 +119,6 @@ function randomTips() {
|
||||
}
|
||||
|
||||
function getCurrentImage() {
|
||||
currentImageIndex = window.$docsify.currentThemeModeIndex;
|
||||
switch (currentImageIndex) {
|
||||
case 0: //light
|
||||
return "/images/otto-rd2.png";
|
||||
case 1: //dark
|
||||
return "/images/otto-rd2-xmas-compressed.png";
|
||||
case 2: //default
|
||||
return "/images/otto-wyym.png";
|
||||
}
|
||||
ottoIndex = (ottoIndex) % ottos.length;
|
||||
return ottos[ottoIndex];
|
||||
}
|
||||
@ -10,7 +10,7 @@ let positions = {
|
||||
"c4": { "x": 136, "name": "第四拍" },
|
||||
"c5": { "x": 160, "name": "第五拍" },
|
||||
"c6": { "x": 184, "name": "第六拍" },
|
||||
"c7": { "x": 249, "name": "第普通拍" },
|
||||
"c7": { "x": 249, "name": "第二拍" },
|
||||
"ccharacter": { "x": 35, "name": "角色" },
|
||||
"ccenter": { "x": 176, "name": "中心" },
|
||||
"cheart": { "x": 317, "name": "心" },
|
||||
|
||||
@ -110,11 +110,12 @@ function plugin(hook, vm) {
|
||||
currentThemeModeIndex ++
|
||||
}
|
||||
window.$docsify.currentThemeModeIndex = currentThemeModeIndex
|
||||
window.$docsify.onLightDarkModeChange();
|
||||
setThemeMode(themeModes[currentThemeModeIndex])
|
||||
if (window.$docsify.onLightDarkModeChange) {
|
||||
window.$docsify.onLightDarkModeChange();
|
||||
}
|
||||
}
|
||||
|
||||
document.body.appendChild(switchSpan)
|
||||
|
||||
var zoomInSpan = document.createElement('span')
|
||||
zoomInSpan.id = 'zoomInSpan'
|
||||
@ -175,6 +176,7 @@ function plugin(hook, vm) {
|
||||
showOtto()
|
||||
}
|
||||
|
||||
document.body.appendChild(switchSpan)
|
||||
document.body.appendChild(zoomInSpan)
|
||||
document.body.appendChild(zoomOutSpan)
|
||||
document.body.appendChild(zoomDefaultSpan)
|
||||
|
||||
@ -3,7 +3,7 @@ body.dark {
|
||||
--main-theme-color: #008080;
|
||||
--background-color: #1f1f1f;
|
||||
--section-main-color: #0f0f0f;
|
||||
--section-background-color: #008080;
|
||||
--section-background-color: #003333;
|
||||
--section-table-header-border-color: #303030;
|
||||
--section-blockquote-background-color: #003a3a;
|
||||
--section-blockquote-color: #d4d4d4;
|
||||
|
||||
@ -3,7 +3,7 @@ body.light {
|
||||
--main-theme-color: #008585;
|
||||
--background-color: #dddddd;
|
||||
--section-main-color: #00c9c9;
|
||||
--section-background-color: #005f5f;
|
||||
--section-background-color: #009999;
|
||||
--section-table-header-border-color: #b1b1b1;
|
||||
--section-blockquote-background-color: #c6ffff;
|
||||
--section-blockquote-color: #414141;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user