diff --git a/_navbar.md b/_navbar.md index 0cca24b..e69de29 100644 --- a/_navbar.md +++ b/_navbar.md @@ -1 +0,0 @@ - diff --git a/_sidebar.md b/_sidebar.md index db9fd7e..41a6863 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -33,6 +33,7 @@ - [

采音和节奏设计

](/pages/beatpatterndesign.md) - [

关卡设计

](/pages/chartdesign.md) - [

音效设计

](/pages/audiodesign.md) + - [

双人模式设计

](/pages/twoplayers.md) - [

无障碍设计

](/pages/accessibledesign.md) - 进阶:视觉特效 - [

房间

](/pages/room.md) diff --git a/index.html b/index.html index 21e0e5d..8432bb9 100644 --- a/index.html +++ b/index.html @@ -26,7 +26,7 @@ homepage: '/pages/intro.md', loadSidebar: true, loadNavbar: true, - coverpage: true, + coverpage: false, maxLevel: 5, subMaxLevel: 4, mergeNavbar: true, diff --git a/pages/appendix_gimmicks.md b/pages/appendix_gimmicks.md index 43ad60a..aac19a7 100644 --- a/pages/appendix_gimmicks.md +++ b/pages/appendix_gimmicks.md @@ -8,7 +8,7 @@ ### 带X拍子 -在编辑器中翻译为X字拍子。心跳有时候会**跳过一些拍子**,但我们仍然需要在拍子抵达时抓住时机按键。当电图线路上出现**红色的X字**时,就意味着这些拍子会被跳过。这个时候你需要在头脑里继续数数,然后照常在第二拍处按键。 +在编辑器中翻译为X字拍子。心跳有时候会**跳过一些拍子**,但我们仍然需要在拍子抵达时抓住时机按键。当电图线路上出现**红色的X字**时,就意味着这些拍子会被跳过。这个时候你需要在头脑里继续数数,然后照常在七处按键。 在`1-2 亲密`中被首次引入,且在大量关卡中出现。 @@ -22,13 +22,13 @@ ### 摇摆普通拍子 -也称心脏梗阻。他们的心跳会出现不规则的拍子,因为心跳信号的工作不正常,节拍也会呈现不规则的感觉。无论如何,也请在第二拍按下空格。 +也称心脏梗阻。他们的心跳会出现不规则的拍子,因为心跳信号的工作不正常,节拍也会呈现不规则的感觉。无论如何,也请在第七拍按下空格。 在`3-3 分离二重唱`中被首次引入。 ### 网好卡菌 -在编辑器中应设置为电击拍子。无论发生什么都要在音乐的第二拍按下空格。 +在编辑器中应设置为电击拍子。无论发生什么都要在音乐的第七拍按下空格。 在`1-X 东方不眠夜`中被首次引入。 diff --git a/pages/audiodesign.md b/pages/audiodesign.md index a43f10e..9242e4d 100644 --- a/pages/audiodesign.md +++ b/pages/audiodesign.md @@ -22,7 +22,7 @@ ## 设置游戏音效 -除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第二拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。 +除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第七拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。 这些音效在设置的时候是无法下拉列表选择更改的,只能通过键入游戏内置的音效文件名,或者导入自定义的音效来改变。目前已公开的内置音效文件名因为数量太多,集中收录在了[附录3](../appendix/3.html)中。 diff --git a/pages/changelog.md b/pages/changelog.md index f53d3db..630ea28 100644 --- a/pages/changelog.md +++ b/pages/changelog.md @@ -1,5 +1,11 @@ # 更新信息 +#### 2025-06-28 +- 添加了~~吐槽~~样式 +- 修复了批量替换遗留问题 +- 修复了样式混淆 +- 添加了[双人模式设计页面](../pages/twoplayers.md) + #### 2025-06-08 - 修复了一些死链 - 添加了新的 otto 插图(没错作者又更了)并修改了更换逻辑 diff --git a/pages/credits.md b/pages/credits.md index f97896c..7a348a6 100644 --- a/pages/credits.md +++ b/pages/credits.md @@ -7,7 +7,7 @@ - [Sterix_Craft砹氪硒](https://space.bilibili.com/349090681) - [T_Terrence](https://space.bilibili.com/455443751) - [mfgujhgh](https://space.bilibili.com/1369651) - - [喜欢精灵宝可梦的黄黄](https://space.bilibili.com/589687399) + - [龙俟城](https://space.bilibili.com/589687399) - [卢毅](https://space.bilibili.com/26101629) - [RaYmondCheung](https://space.bilibili.com/1579208) - [NoMathExpectation](https://space.bilibili.com/184862524) diff --git a/pages/decoration.md b/pages/decoration.md index 222c091..ec53bdf 100644 --- a/pages/decoration.md +++ b/pages/decoration.md @@ -49,14 +49,14 @@ **删除**:删除这个精灵。 diff --git a/pages/moreclassicbeats.md b/pages/moreclassicbeats.md index 92576ab..04929e0 100644 --- a/pages/moreclassicbeats.md +++ b/pages/moreclassicbeats.md @@ -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]; 如果你想让一串自由节拍最后不需要按拍,而是节奏直接消失,就把这一组自由节拍的最后一个点选**垃圾桶**符号。 -> 如果你设计了一段无法数到第二拍的节奏且不放置垃圾桶,那么心电图就会一直停在轨道中间。这很诡异。 +> 如果你设计了一段无法数到第七拍的节奏且不放置垃圾桶,那么心电图就会一直停在轨道中间。这很诡异。 接下来介绍一些社区机制。社区玩家们通过合理设计自由拍,并加以适当的提示,创造出了一些全新的节奏类型。其中一些节奏被广泛使用,并在社区中形成共识,从而延续下来。使用这些机制制作自定义关卡无需额外设计教学环节。当然如果你担心玩家不了解社区,或是你有其它自己的想法,也可以为这些节奏类型自行设计节奏提示的方法,唯一的宗旨是保证提示恰当准确。 diff --git a/pages/oneshotbeat.md b/pages/oneshotbeat.md index b947696..1defd57 100644 --- a/pages/oneshotbeat.md +++ b/pages/oneshotbeat.md @@ -29,7 +29,7 @@ eb.AddOneshotBeat 5 1[tick=0.75,loop=3,interval=1]; ## 单发拍子护士提示 -单发拍子与普通拍子不同之处在于,普通拍子可以观察前六次脉冲,推测出第二拍的正确按键时机;但单发拍子只有一次脉冲,玩家无法仅通过单发拍子的脉冲得知按键时机。因此,为了能让玩家正确击打单发拍子,**必须为单发拍子添加护士提示**。 +单发拍子与普通拍子不同之处在于,普通拍子可以观察前六次脉冲,推测出第七拍的正确按键时机;但单发拍子只有一次脉冲,玩家无法仅通过单发拍子的脉冲得知按键时机。因此,为了能让玩家正确击打单发拍子,**必须为单发拍子添加护士提示**。 ![护士语音设置](../images/oneshotbeat-whatshouldnursesay.png) diff --git a/pages/twoplayers.md b/pages/twoplayers.md new file mode 100644 index 0000000..9f51542 --- /dev/null +++ b/pages/twoplayers.md @@ -0,0 +1,21 @@ +# 双人模式设计 + +> 此页面处于初稿阶段,欢迎补充! + +## 切换至双人模式 + +[在编辑器预览栏下](../pages/editorinterface.md)打开双人模式选项,这时候预览画面中的所有玩家操控的轨道会相应地变换。 +由玩家 1 操控的轨道的默认颜色变为蓝色(`#0050FF`),心脏处会增加一个蓝色的 P1 图标; +由玩家 2 操控的轨道的默认颜色变为红色(`#AC0929`),心脏处会增加一个红色的 P2 图标。 +指示轨道控制者的图标(P1,P2,CPU)都不会受轨道染色事件影响。 +在播放关卡过程中会影响以下游戏元素的行为。 +- 切换玩家轨道事件是为改变轨道控制者而设计的。将下拉单选框的选项改为`双人模式`或`单人或双人模式`时,事件就会在双人模式下执行。 +- 编辑条件时将类型改为玩家模式,再在下面的玩家模式中选择双人,即可使应用了这个条件的事件仅在双人模式下执行。 + +## 多轨道设计 + +官方在 v0.18.0 时重新设计了大量关卡的双人模式版本。 +在设计双人模式关卡时,最核心的要点就是:需要让玩家分清他所控制的轨道。这同时也适用于在关卡中将某个轨道托付给 Otto 时的情况。 +在为单发拍使用护士提示时需要用两种护士音效以区分玩家,通常为 P1 使用的语音为**护士**,P2 使用的语音为**伊恩**。你也可以根据实际场景交换这两者。 +轨道的音效使用左右声道作区分(例如左声道只播放 P1 需要操控的轨道的音效而右声道相反)也是一个不错的选择。 +当 P1、P2 交换轨道控制权时,需要使用护士语音 `Switch` 以提示即将交换轨道控制权。 diff --git a/script/special.js b/script/special.js index 846c7f2..930c5cf 100644 --- a/script/special.js +++ b/script/special.js @@ -5,22 +5,22 @@ let columny; let positions = { "c1": { "x": 64, "name": "第一拍" }, - "c2": { "x": 88, "name": "第单发拍" }, + "c2": { "x": 88, "name": "第二拍" }, "c3": { "x": 112, "name": "第三拍" }, "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": "心" }, - "r1": { "y": 162, "name": "四轨时的第一轨" }, - "r2": { "y": 141, "name": "三轨时的第一轨" }, - "r3": { "y": 120, "name": "二轨时的第一轨/四轨时的第二轨" }, + "r1": { "y": 162, "name": "四轨时的第四轨" }, + "r2": { "y": 141, "name": "三轨时的第三轨" }, + "r3": { "y": 120, "name": "二轨时的第一轨/四轨时的第三轨" }, "r4": { "y": 99, "name": "一轨时的第一轨/三轨时的第二轨" }, - "r5": { "y": 78, "name": "二轨时的第二轨/四轨时的第三轨" }, - "r6": { "y": 57, "name": "三轨时的第三轨" }, - "r7": { "y": 36, "name": "四轨时的第四轨" }, + "r5": { "y": 78, "name": "二轨时的第二轨/四轨时的第二轨" }, + "r6": { "y": 57, "name": "三轨时的第一轨" }, + "r7": { "y": 36, "name": "四轨时的第一轨" }, } function themePosition() { diff --git a/style/base.css b/style/base.css index 73523cf..c3799f1 100644 --- a/style/base.css +++ b/style/base.css @@ -471,7 +471,7 @@ main.hidden { } .sidebar-toggle { - background: linear-gradient(to right, transparent 50px, #0ff8); + background: linear-gradient(to right, #0dd 50px, #0ff8); border: 0; outline: none; padding: 10px; @@ -967,7 +967,7 @@ section.cover blockquote>p>a { } .markdown-section code { - border-radius: 2px; + border-radius: 4px; margin: 0 2px; padding: 3px 5px; white-space: pre-wrap @@ -1227,4 +1227,27 @@ article.markdown-section:has(.intro)>.notice[onclick] { &:hover { transition: all 0.5s; } +} + +div.medium-zoom-overlay{ + opacity: 0.5 !important; +} + +del{ + text-decoration: none; + background-color: #5C5D67; + color: #5C5D67; + transition: background-color 0.1s, color 0.1s; + border-radius: 4px; + cursor: pointer; + &:hover { + background-color: #7B7C84; + color: #7B7C84; + transition: background-color 0.1s, color 0.1s; + } + &:active { + background-color: inherit; + color: inherit; + transition: background-color 0.1s, color 0.1s; + } } \ No newline at end of file diff --git a/style/color.css b/style/color.css index 077b344..fa47c8e 100644 --- a/style/color.css +++ b/style/color.css @@ -128,7 +128,7 @@ body { .markdown-section h3, .markdown-section h4, .markdown-section strong { - color: var(--section-background-color); + color: var(--section-color); } .markdown-section a { @@ -142,7 +142,7 @@ body { .markdown-section code { background-color: var(--section-main-color); - color: var(--section-background-color); + color: var(--theme-color); font-family: d9c, d9; } @@ -220,4 +220,8 @@ article.markdown-section:has(.intro)>.notice { &[onclick]:hover{ background-color: var(--section-main-color); } +} + +div.medium-zoom-overlay{ + background-color: var(--background-color) !important; } \ No newline at end of file diff --git a/style/dark.css b/style/dark.css index 07e7b01..5f0a4b5 100644 --- a/style/dark.css +++ b/style/dark.css @@ -2,6 +2,7 @@ body.dark { --main-color: #c8c8c8; --main-theme-color: #008080; --background-color: #1f1f1f; + --background-border-color: #303030; --section-main-color: #0f0f0f; --section-background-color: #003333; --section-table-header-border-color: #303030; @@ -15,6 +16,8 @@ body.dark { --notice-border-color: #303030; --notice-hover-background-color: #525252cc; -webkit-tap-highlight-color: rgb(0, 0, 0); + + --special-theme-position-backgound-color: #177500; } body.dark .sidebar li>a:has(>img) { diff --git a/style/light.css b/style/light.css index d8b836d..370d147 100644 --- a/style/light.css +++ b/style/light.css @@ -2,6 +2,7 @@ body.light { --main-color: #202020; --main-theme-color: #008585; --background-color: #dddddd; + --background-border-color: #b1b1b1; --section-main-color: #00c9c9; --section-background-color: #009999; --section-table-header-border-color: #b1b1b1; @@ -15,6 +16,8 @@ body.light { --notice-border-color: #b1b1b1; --notice-hover-background-color: #e0e0e0; -webkit-tap-highlight-color: rgb(255, 255, 255); + + --special-theme-position-backgound-color: #05a000; } body.light .sidebar li>a:has(>img) { diff --git a/style/special.css b/style/special.css index b103635..40a4263 100644 --- a/style/special.css +++ b/style/special.css @@ -114,9 +114,9 @@ div.theme-positions>.infobox { width: max-content; height: max-content; padding: 3px; - border: 2px solid #535353; + border: 2px solid var( --background-border-color); border-radius: 2px; - background-color: #363636; + background-color: var(--background-color); text-align: center; z-index: 20; font-size: 15px; @@ -130,7 +130,7 @@ div.theme-positions>.infobox { font-weight: bold; &.c { - background-color: #177500; + background-color: var(--special-theme-position-backgound-color); border-radius: 3px; } }