如题,用js/canvas还原Phigros游戏画面,属于个人兴趣项目,仅用于学习和测试;
模拟器代码部分为作者独立编写,与《Phigros》游戏本体无关,您因使用或修改代码所造成的一切后果由您自己承担;
不提供游戏本体安装包及逆向工具/教程,也不提供谱面下载;
模拟器并不拥有官方素材(如音符贴图/打击音效/结算UI)的版权,如有侵权请联系模拟器作者下架相关内容。
感谢@Mac-Fus提供虚拟机支持
感谢@星星awa提供Safari适配思路
- 优化UA识别策略 (针对iPad/Safari)
- 优化字体渲染 (调整为Mina+NotoSans)
- 修复长度超过一定值的
Hold在旋转一定角度时不正常显示的bug
- 微调
Note的positionX与画面宽度的比值 (由1/18改为9/160)
- 修复部分官方谱面
Note显示异常的bug (感谢@MayLight39提供反馈)
- 新增图片加载检测
- 针对UA标识为iOS和MacOS的设备禁用图片缓存
- 修改
音乐变速时支持存档(不同速度安排不同存档位) - 现在结算界面会显示具体变速数值(修改
音乐变速时生效)
- 优化第三方js的加载逻辑和相关提示
- 现在文本输入溢出时会缩排(即超过一定长度时缩小字号)
显示定位点:Note定位文字改为判定线序号±Note序号+Note类型- (例如0号判定线上方的0号Note,如果是
Tap则定位文字为0+0t)
- (例如0号判定线上方的0号Note,如果是
- 修复了系统时间可能的自动修正导致谱面瞬移的bug
- 新增pec谱面
Note方向数值检测 没有别的更新了qwq
- 修复了部分包含时间异常事件的谱面不正常显示的bug
- 移除HyperMode
- 新增功能:
谱面镜像(实时生效) - 新增功能:
音乐变速(非实时生效,启用时无法存档) - 新增Early/Late特效复选框(测试功能)
- 现在
信息选项卡无信息时会显示一条文案
新增HyperMode:更加严格的判定和结算(测试功能)新增Great判定:40-80ms(显示为绿色特效,HyperMode特有)- 新增Early/Late统计(结算界面点击切换)
- 针对低帧率画面调整打击判定,提升稳定性
- 暂停时点击画面不再触发打击判定
- 修复了部分设备非全屏触摸点向上错位的bug
- 新增zip模块兼容性检测(测试功能)
- 修复了画面高度小于一定值时全屏触摸点向下错位的bug
- 修复了pec谱面结尾的n指令无法正常读取的bug
- 移除可选链操作符和WebAssembly兼容性检测
- 移除视频录制功能
- 新增pec谱面事件时间检测(测试功能)
- 为
Hold添加多押高亮(与官方v2.0.0一致)
- 修复了画面高度大于一定值时部分
Note无法正常显示的bug 修复了pec谱面结尾的n指令无法正常读取的bug
- 画面左上角播放进度:暂停时会显示
(Paused)
- 修复了
info.csv配置不当导致谱面显示错误的bug - 修复了进入结算界面之前重新开始仍会结算的bug
- 画面左上角播放进度:当分钟小于10时不再补0
- 修复了因上版本播放逻辑造成音频撕裂的bug(将播放逻辑回退至1.4.7)
- 修复了过渡动画结束前判定时间内的
Note可以被打击的bug 修复了进入结算界面之前重新开始仍会结算的bug
优化音频播放逻辑,使音频与谱面保持同步
修复了过渡动画结束前判定时间内的Note可以被打击的bug修复了进入结算界面之前重新开始仍会结算的bug- 修复了部分不支持视频录制的浏览器无法使用模拟器的bug
- 新增浏览器兼容性检测(测试功能)
- 新增pec谱面异常
Note和负数Alpha检测(测试功能)
- 为iPhone全面屏提供适配
- 隐藏文件:zip内包含以
.开头的文件将被隐藏,不会显示在选项框
- 优化图像和字体渲染
- 为Safari浏览器适配全屏功能
Hold连续打击特效间隔现在与判定线bpm成反比Autoplay开启时,结算画面不再显示"+0"- 产生Bad判定的
Note现在会跟随判定线 - pec谱面默认偏移由-150ms改为-175ms
- 新增键盘操作,感受极其生草的游戏体验(测试功能)
- 为Safari浏览器适配离屏自动暂停功能
- 若Bad判定范围内的
Tap前方存在未打击的Drag或Flick将不触发Bad判定 - 暂停快捷键由
Space(空格)改为Shift(左右Shift均可) - 调整了结算界面
AUTO PLAY的显示位置
- 新增
触摸反馈和背景模糊复选框(实时生效) - 新增本地存档(仅在关闭
Autoplay并开启过渡动画时存档)
- 对Safari浏览器进行部分适配
- 优化文件读取逻辑,现在能够支持更多文件类型
- 优化图像渲染
- 结算界面背景音乐会随等级变化(仅在进入结算界面前生效)
- 新增功能:
谱面延时(非实时生效) - 添加防止模拟器泛滥的提示
- 新增错误提示(现在导入不包含音乐的zip文件也会报错)
- 优化页面布局
Hold渲染由倒序改为顺序(其余Note渲染顺序仍为倒序)- 导入zip:背景图片由必需改为可选(无图片时将替换为纯白背景)
- 过渡动画由逐帧控制改为计时器控制
- 修复了过渡开始动画判定线颜色不随
FC/AP指示器变化的bug
- 双击判定区域由圆形改为矩形
- 修复了无法判定
HoldTime小于0.2s的Hold的bug
- 新增画面双击判定:左上角暂停,右上角重新开始
- 优化触摸点定位逻辑
- 增大画面双击判定范围(现在与画面文字大小成正比)
- 修复了开启
显示定位点时无法统计note数目的bug - 修复了逐帧判定导致严重吃音的bug
- 修复了结算界面"φ"评级有几率错误地显示为“V”的bug
- 新增
FC/AP指示器复选框(实时生效) - 新增游玩模式(测试功能,需关闭
Autoplay复选框) - 新增结算界面(测试功能,在歌曲结束后出现,需开启
过渡动画复选框) - 新增错误提示(导入非zip文件或不包含谱面的zip文件均会报错)
- 优化图片颜色渲染机制
- 打击特效动画更加接近官方(1.6.11)
- 单个打击特效时长由30tick改为500ms
- 切换全屏的方式改为双击画面右下角
- 修复了关于pec谱面第一个bp指令延时不为0导致谱面错误偏移的bug
- 优化绘制逻辑,提升性能
- 修复无判定线事件的谱面无法播放的问题
Note定位文字改为判定线序号±Note序号(例如0号判定线上方的第0个Note定位文字为0+0)
- 新增功能:视频录制(测试功能,录制时无法暂停)
- 实装
info.csv和line.csv,简介新增悬浮提示 - 连击字样
combo改为Autoplay 显示定位点:画面左下角显示不同种类已打击Note的实时数量,负数Note以半透明显示
- 对pec谱面的bpm变速功能进行适配
- 新增功能:过渡动画(包含开头淡入和结尾淡出,不包含结算)
- 新增输入框(曲绘、谱师),对应过渡动画
- 通过添加
line.csv以修改判定线贴图(测试功能) - 通过添加
info.csv以自动填写谱面信息(测试功能)
- 优化zip文件读取逻辑(数组→对象)
- 优化判定线和背景的绘制顺序
- 调整背景和UI对不同尺寸屏幕的适配
- 打击特效动画采用缓动函数
- 调整打击音效与官方v1.6.10一致
- 优化
播放/停止和暂停/继续按钮相关逻辑
宽高比下拉列表新增10:7(适配iPad Pro 11),将256:175改为19:13(适配Phi Editor)显示定位点:判定线数字透明度随判定线透明度变化,Note打击后变为半透明Hold尾判调整为提前0.2秒得分Hold连续打击特效间隔由12tick缩短为9tick
- 修复了部分谱面
Note打击时间异常的bug - 修复了有关pec谱面判定线事件time不精确导致排序错误的bug
- 修复了点击
停止按钮后按住的Hold无法关闭导致连击得分溢出的bug
显示定位点现在能对Note进行定位(测试功能)
- 修复包含文件夹的zip无法正确加载的问题
- 修复了部分谱面
Note速度异常及Hold错位的bug
- 谱面默认速度:
1.0→1.2(json),1/5.75→1/7.0(pec) - 打击特效颜色:
#fce491(Perfect),#9ed5f3(Good)
- 添加下拉列表(宽高比、按键缩放、背景变暗)
- 对pec谱面的
Fake Note进行适配(测试功能)
- 修复了有关pec判定线演出的若干bug
- 支持导入pec(暂未适配
Fake Note和Alpha值扩展)
- 支持导入zip、选择谱面及一些基本操作
- 暂时移除
模拟Demo
模拟Demo改为Phigros愚人节谱Spasmodic SP