《Chromium 小恐龙》P0/P1 游戏性优化、输入体验与 UI 修复
Chromium小恐龙P0/P1大更新!跳跃手感优化、碰撞箱更公平、幽灵竞速同步、手势响应提升,新增退出与重播按钮,修复字体闪烁,体验全面升级!
游戏性(恐龙与障碍物)
- 恐龙:增加可变跳跃高度,约 90ms 土狼时间(coyote time),约 130ms 跳跃缓冲;
将碰撞箱缩小至精灵图的 0.6 x 0.78,使碰撞判定更公平。
- 障碍物管理器(obstacle-manager):公开 getSeed() 方法;添加 obstacleTypeFilter,以便在“简单”难度下排除高难度障碍物类型。
- 幽灵管理器(ghost-manager):获取当前运行的障碍物种子,确保幽灵竞速产生的障碍物序列完全一致。
- 道具管理器(power-up-manager):防止金币与障碍物重叠,并重新调整刷新频率,使道具获取感更频繁。
输入
- 输入管理器(input-manager):在单人模式下同样支持 P0 使用 W/S 键(当没有 P1 时,coopEnabled 不再限制辅助控制)。
- 手势源(gesture-source):将去抖动(debounce)降至 80ms,除数设为 1,手部数量设为 2,以获得更灵敏的手势响应。
- 输入模式存储(input-mode-store):在切换输入模式时销毁手势/头部姿态摄像头的单例,以便释放摄像头占用。
UI / 流程
- 主菜单:添加“退出”按钮(图标为 power_settings_new),通过预加载桥(preload bridge)连接至主进程中新的 app:quit IPC 处理程序。
- 每日挑战:添加重播路径(launchDaily(isReplay)),并在今日已完成挑战的情况下显示“重播”按钮。
- 游戏场景(game-scene)+ 应用(App)+ 类型定义:将 GameConfig.isReplay 贯穿至 GameOverData;仅在重播时执行 savePlayer(),跳过金币、最高分、连胜及最近每日挑战日期的更新。
- 游戏结束界面:支持使用键盘空格键或 R 键重新开始。
- 国际化(i18n):添加 menu.quit 和 daily.replay 字符串(包含英文及简体中文)。
- 组件样式(components.css):针对新按钮进行微小的样式调整。
Material Symbols 字体加载闪烁问题(刷新时出现的“workspace_premium”闪烁)
- index.html:静态声明 Google Fonts 的 标签并添加 preconnect 预连接提示,使请求在 HTML 解析阶段就开始,而非等待 React 挂载后;将 URL 中的 display=swap 改为 display=block,确保图标区域在短加载窗口期保持不可见,防止显示连字关键字。
- main.tsx:移除现已冗余的运行时 注入。
系统连线
- main/index.ts:注册 ipcMain.on('app:quit') → app.quit()。
- preload/index.ts:公开 electronAPI.quit()。
- 游戏类型定义(game/types):添加 GameConfig.isReplay、GameOverData.isReplay 以及 Window.electronAPI.quit(): void。


