Skip to content

murd3r17/Notarcaea

Repository files navigation

Notarcaea

自制 4K 下落式音游。用 C++ 编写,玩法类似 Malody 或 osu!mania。

玩家在音符下落至判定线时,通过键盘按下对应键位击打音符。游戏支持读取 Malody 社区的 4K 谱面文件,音符随音乐同步下落,并根据按键时机给出 Pure / Far / Lost 判定,实时显示 Combo 与分数,局末进入结算界面。

谱面使用 Malody 社区的 4K 谱面文件(.mc 重命名为 chart.txt 即可)。


一、概述

欢迎游玩 Notarcaea!

Notarcaea 是一款基于 C++ 与 SFML 的 4 键(4K)下落式节奏游戏,模拟 Malody / osu!mania 玩法。音符从屏幕顶部沿四条轨道下落,玩家在判定线处用键盘击打对应键位,与音乐节奏同步,通过练习挑战更高难度的谱面。

游戏可运行大部分来自 Malody 社区的常规 4K 谱面。请确保你有一定的音游基础后再挑战高难度谱面。

核心功能

  • 选歌与进度:登录后进入主菜单,在选歌界面挑选歌曲;支持多首谱面、排行榜与本地存档
  • 四轨下落:四个轨道对应四个按键,音符从顶端落向底部判定线
  • 两种音符:单键(Tap)与长条(Drag)
  • 谱面驱动:读取谱面 JSON,按时间戳与轨道编号生成音符,流速随 BPM 可调
  • 判定系统:Pure / Far / Lost,依据按键时机与音符到达判定线的时间差计算
  • 实时反馈:显示各判定计数、当前 Combo、分数
  • 结算界面:局末展示 Pure / Far / Lost、最大 Combo、准确率等

计划中的功能

  • 联机:局域网房间,最多四人同屏,实时显示各玩家 Combo,共同结算后继续游玩
  • 游戏内设置:键位、音量等
  • 暂停 / 重开

上述功能尚未实现,当前版本以完整单机游玩为主。


二、系统要求与跨平台支持

本项目在 WindowsLinux 上均可编译运行。SFML 2.6.2 已内置在 sfml/ 目录,无需在本机单独安装 SFML。

项目 要求
操作系统 Windows 10/11Linux(Ubuntu、Debian、WSL 等)
CPU Intel Core i3 或同等性能
内存 2 GB RAM 或更高
显卡 支持 OpenGL 的图形驱动(WSL 需 WSLg)
编译器 g++(支持 C++17)
图形/音频库 项目自带 SFML 2.6.2sfml/linux64sfml/win64

Linux 运行时仍依赖系统自带的 OpenGL、X11/Wayland 等基础库(桌面/WSLg 环境通常已具备)。

Windows 原生(MinGW)

使用与 SFML 包匹配的 GCC 13.1.0 MinGW-w64(SEH)。编译脚本会把所需 DLL 复制到项目根目录。

Linux / WSL

只需安装 g++,不必 apt install libsfml-dev。链接时使用 -rpath,从 sfml/linux64/lib 加载 SFML。


三、编译与运行

Linux / WSL

bash scripts/build-linux.sh
./notarcaea

Windows(MinGW,在项目根目录)

scripts\build-windows.bat
notarcaea.exe

sfml/win64 为空,先在 WSL 中执行一次:

bash scripts/fetch-sfml-windows.sh

详见 sfml/VERSION.txt

首次运行会在当前目录生成 userdata.txt 保存登录与成绩,请勿删除。


四、操作指南

4.1 登录界面

按键 功能
字母 / 数字 输入用户名
Backspace 删除
Enter 确认登录
Escape 退出游戏

4.2 主菜单

按键 功能
↑ / ↓ 选择选项
Enter 确认
Escape 退出游戏

4.3 选歌界面

按键 功能
↑ / ↓ 选择歌曲
Enter 开始
Page Up / Down 快速滚动
Escape 返回主菜单
鼠标滚轮 滚动列表
鼠标左键 选择歌曲或返回

4.4 游玩

按键 功能
D / F / J / K 击打四轨音符
Escape 返回选歌(中途退出)
  • Tap(单键):音符进入判定区时按下对应键
  • Drag(长条):音符在判定区内时对应键保持按住即可

判定窗口默认为判定线前后 ±100 ms;其中较精确范围内为 Pure,稍偏仍为 Far,漏打或过线未击中为 Lost。屏幕中央显示 Combo,左上角显示 Score

4.5 结算与排行榜

  • 歌曲结束后进入结算界面,可查看各判定数量、最大 Combo、准确率,并选择继续游玩、查看排行榜或返回登录
  • 排行榜按 songs/ 内歌曲动态展示,每首 Top 5,可滚动浏览

五、添加谱面

songs/ 下为每首歌创建一个文件夹,例如:

songs/我的歌曲/chart.txt
songs/我的歌曲/audio.ogg
  1. 从 Malody 获取 4K 谱面,将 .mc 重命名为 chart.txt
  2. 把谱面末尾 metadata 里指定的 音频文件(多为 .ogg)放在同一文件夹
  3. 启动游戏后选歌列表会自动扫描 songs/ 下的子文件夹,按字母顺序排列,无需改代码

songs/ 为空,程序会回退使用根目录的 chart.txtaudio.ogg(备用谱面)。

Offset 偏移

部分 Malody 谱面的 offset 正负不一致。若音符与音乐明显不同步,可在 main.cpp 中调整全局变量 offset_minus(设为 1-1),换谱面后试玩微调即可。

不建议随意改动谱面下落流速,可能影响延迟手感;当前默认流速已针对现有谱面做过适配。


六、开发者说明

当前版本优先保证完整单机流程可玩:登录、选歌、游玩、结算、存档与排行榜。主界面选歌、局内设置、暂停重开、联机等功能留待后续版本。

主要源码:main.cpp(界面与游戏循环)、parser.cpp(谱面解析)、userdata.cpp(存档与排行)、utils.cpp(绘制辅助),以及内嵌的 jsoncpp。


许可证

个人学习 / 演示项目。谱面版权归原作者所有,请遵守 Malody 社区相关规范。

About

Notarcaea 是一款基于 C++ 与 SFML 的 4 键(4K)下落式节奏游戏,模拟 Malody / osu!mania 玩法。音符从屏幕顶部沿四条轨道下落,玩家在判定线处用键盘击打对应键位,与音乐节奏同步,通过练习挑战更高难度的谱面。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages