fix: 修复批量缺陷并优化性能与交互体验
修复移动端摇杆输入失效问题,修正Rex摇杆的力值使用逻辑 重构输入互斥为计数模型,新增ui:opened事件解决纪念页穿透输入问题 修复引导箭头首帧闪现问题,设置初始透明度过渡 修复hasSave误判存档问题,新增合法景点id校验集 修复底图加载失败白屏问题,新增占位底图降级逻辑 移除无用的Phaser照片预加载,节省约65MB纹理显存 优化性能:缓存景点索引与解锁集合,跳过UI锁期间的世界更新 升级纪念页支持点击照片复用拍立得弹窗放大,新增照片降级 修复HUD指针事件不生效的CSS特异性问题 同步更新事件协议文档与输入锁模型说明
This commit is contained in:
1 parent
a404e42ca8
commit
b0467054c8
11 files changed
+254
-103
No files matched your search
+8
-2
@@ -65,13 +65,19 @@ index.html
|
||||
|
||||
| 事件名 | 方向 | 载荷 | 语义 |
|
||||
|---|---|---|---|
|
||||
| `poi:reached` | Phaser → UI | `spot` 配置对象 | 玩家进入景点触发区,请求弹窗 |
|
||||
| `ui:closed` | UI → Phaser | 无 | 弹窗/封面关闭,恢复游戏输入 |
|
||||
| `poi:reached` | Phaser / UI → UI | `{ spot }` | 请求弹出景点拍立得弹窗(进入触发区,或纪念页点击照片) |
|
||||
| `ui:opened` | UI → Phaser | 无 | 弹窗/纪念页显示,获取一层输入锁 |
|
||||
| `ui:closed` | UI → Phaser | `{ spotId? }` | 关闭,释放一层输入锁;带 `spotId` 时触发该景点解锁与冷却 |
|
||||
| `state:changed` | game-state → 两层 | 进度快照 | 解锁变化,刷新 HUD 与地图标记 |
|
||||
| `game:complete` | game-state → UI | 进度快照 | 全部解锁,弹出纪念页 |
|
||||
|
||||
### 3.3 输入互斥(弹窗打开时)
|
||||
|
||||
**输入锁计数模型**:MapScene 维护 `uiLocks`,封面页初始持有 1 层;每个 UI 组件
|
||||
(PhotoModal / CompleteOverlay)显示时 emit `ui:opened` 加锁、关闭时 emit `ui:closed`
|
||||
解锁;计数归零才恢复游戏输入。这样纪念页与其上叠加的拍立得弹窗能各自持锁,
|
||||
不会因先关闭其中一层就提前放行地图输入。
|
||||
|
||||
双保险:
|
||||
|
||||
1. DOM 层全屏遮罩拦截所有触摸/点击(`pointer-events: auto`)
|
||||
|
||||
Reference in new issue
Block a user