- 修复了一些死链

- 添加了新的 otto 插图(没错作者又更了)并修改了更换逻辑
This commit is contained in:
OLDREDSTONE 2025-06-09 00:05:22 +08:00
parent 564e867e04
commit 9e1153417b
15 changed files with 45 additions and 54 deletions

BIN
images/otto-traditional.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@ -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#让事件摆放更有条理) | 添加注释内容或插入注释型自定义方法 |
## 黄色版块(房间)

View File

@ -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 东方不眠夜`中被首次引入。

View File

@ -22,7 +22,7 @@
## 设置游戏音效
除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第普通拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。
除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。
这些音效在设置的时候是无法下拉列表选择更改的,只能通过键入游戏内置的音效文件名,或者导入自定义的音效来改变。目前已公开的内置音效文件名因为数量太多,集中收录在了[附录3](../appendix/3.html)中。

View File

@ -1,5 +1,9 @@
# 更新信息
#### 2025-06-08
- 修复了一些死链
- 添加了新的 otto 插图(没错作者又更了)并修改了更换逻辑
#### 2025-06-01
- 修复了一些小问题,更正了一些错别字

View File

@ -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 @@
## 显示/隐藏
显示/隐藏可以更改精灵的显示或隐藏状态。建议在初始状态设置为隐藏,在需要的时候改为可见,用完之后继续隐藏。
## 瓷砖精灵图
## 平铺精灵图
瓷砖精灵图可以让精灵直接做成平铺状态,但是保持原像素大小。
**平铺:**把原图平铺成长宽各多少份。

View File

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

View File

@ -16,11 +16,11 @@ eb.PulseFreeTimeBeat 6 0[pulse=9];
eb.PulseFreeTimeBeat 7 0[pulse=9];
```
我们选中数字1对应的节拍发现这个是设置起始脉冲位置的。你甚至可以将它改为第普通拍,然后把六个小的`>`删掉,这样就没有任何节拍提示。如果你设计的关卡是一个和节奏医生没什么关联的创意谱(梦幻联动?),且按键密度很大,则可以考虑这样使用。相比于工作区里面重叠摆放一大堆普通普通拍子,这样会看上去更清爽。但如果你设计的就是节奏医生,**请不要在完全无节奏提示的情况下直接响起第普通拍**。
我们选中数字1对应的节拍发现这个是设置起始脉冲位置的。你甚至可以将它改为第拍,然后把六个小的`>`删掉,这样就没有任何节拍提示。如果你设计的关卡是一个和节奏医生没什么关联的创意谱(梦幻联动?),且按键密度很大,则可以考虑这样使用。相比于工作区里面重叠摆放一大堆普通普通拍子,这样会看上去更清爽。但如果你设计的就是节奏医生,**请不要在完全无节奏提示的情况下直接响起第拍**。
![](../images/moreclassicbeats-endpulse.png)
剩下的大于号`>`即意味着心跳向右移动一格数到7的时候则需要按拍。点选之后把它改成 `<`,心跳还能向左移动一格;点击自定义,还可以任意指定到第几个节拍。每一组自由拍**必须使用较大的节拍作为开头**,较小的则数量不限,直到数到第普通拍为止。
剩下的大于号`>`即意味着心跳向右移动一格数到7的时候则需要按拍。点选之后把它改成 `<`,心跳还能向左移动一格;点击自定义,还可以任意指定到第几个节拍。每一组自由拍**必须使用较大的节拍作为开头**,较小的则数量不限,直到数到第拍为止。
```rdview 10 2
eb.AddFreeTimeBeat 1 0[pulse=1];
@ -41,7 +41,7 @@ eb.PulseFreeTimeBeat 9 0[pulse=9];
如果你想让一串自由节拍最后不需要按拍,而是节奏直接消失,就把这一组自由节拍的最后一个点选**垃圾桶**符号。
> 如果你设计了一段无法数到第普通拍的节奏且不放置垃圾桶,那么心电图就会一直停在轨道中间。这很诡异。
> 如果你设计了一段无法数到第拍的节奏且不放置垃圾桶,那么心电图就会一直停在轨道中间。这很诡异。
接下来介绍一些社区机制。社区玩家们通过合理设计自由拍,并加以适当的提示,创造出了一些全新的节奏类型。其中一些节奏被广泛使用,并在社区中形成共识,从而延续下来。使用这些机制制作自定义关卡无需额外设计教学环节。当然如果你担心玩家不了解社区,或是你有其它自己的想法,也可以为这些节奏类型自行设计节奏提示的方法,唯一的宗旨是保证提示恰当准确。

View File

@ -29,7 +29,7 @@ eb.AddOneshotBeat 5 1[tick=0.75,loop=3,interval=1];
## 单发拍子护士提示
单发拍子与普通拍子不同之处在于,普通拍子可以观察前六次脉冲,推测出第普通拍的正确按键时机;但单发拍子只有一次脉冲,玩家无法仅通过单发拍子的脉冲得知按键时机。因此,为了能让玩家正确击打单发拍子,**必须为单发拍子添加护士提示**。
单发拍子与普通拍子不同之处在于,普通拍子可以观察前六次脉冲,推测出第拍的正确按键时机;但单发拍子只有一次脉冲,玩家无法仅通过单发拍子的脉冲得知按键时机。因此,为了能让玩家正确击打单发拍子,**必须为单发拍子添加护士提示**。
![护士语音设置](../images/oneshotbeat-whatshouldnursesay.png)

View File

@ -10,7 +10,7 @@
![排列房间设置(左)与实际效果(右)](../images/room-visible.png)
将左边的可见房间点亮为黄色,屏幕上就会显示这个房间,高度可以自定义,填写数据后房间高度将自动分配。详细的分配规则点击下方箭头展开。如果你懒得理解分配规则,只需永远保证**不点亮多余的房间并且将存在的房间高度总和设置到100%**即可。
将左边的可见房间点亮为黄色,屏幕上就会显示这个房间,高度可以自定义,填写数据后房间高度将自动分配。详细的分配规则点击下方箭头展开。如果你懒得理解分配规则,只需永远保证 **不点亮多余的房间并且将存在的房间高度总和设置到100%** 即可。
### 房间分配规则
- 如果全部不填,那么

View File

@ -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];
}

View File

@ -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": "心" },

View File

@ -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)

View File

@ -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;

View File

@ -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;