滑鼠移到寵物身上時跳躍,對齊 Codex 的 hover 行為

摘要:
游標壓在人物像素上時播 jumping 3 次再沉澱回慢速 idle,離開後回到原本狀態。

根本原因:
Codex 的寵物元件(codex-pet-assets)在 hover 時會把顯示狀態換成 jumping
(respondToHover && hovered ? "jumping" : state),桌面寵物那層透過
pet-area-hover-changed 事件驅動它。本程式只有點擊會揮手,滑鼠停上去沒有反應。

影響:
滑鼠移到她身上沒有任何回饋,與 Codex 的手感不同。

修法:
- 把 overOpaque 拆成 overBubble 與 overSprite:點穿判定兩者都算,hover 反應只看人物像素,
  游標停在氣泡上不會觸發跳躍。
- 新增 setHovered:進入人物像素時 play("jumping", STATE_REPEATS),與 Codex 的 f("jumping")
  相同是播 3 次;一次性動作或拖曳進行中不打斷。mouseout 離開視窗時清除 hover 狀態。
- 移除已無人使用的 overOpaque。

驗證:
以 ELECTRON_RUN_AS_NODE 讀打包後 app.asar 內的 renderer.js,確認 setHovered、
play("jumping", STATE_REPEATS)、mousemove/mouseout 的呼叫都在出貨檔案裡,overOpaque 已不存在。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 14:49:34 +08:00
co-authored by Claude Fable 5
parent c96dcccb80
commit 7d4c5d849c
2 changed files with 25 additions and 7 deletions
+2
View File
@@ -85,6 +85,7 @@ npm run autostart:install # (可選)開機自動啟動
| 左鍵點一下 | 揮手(若有非固定的氣泡,先關閉氣泡) |
| 左鍵拖曳 | 搬家;往左播 running-left、往右播 running-right;放開後位置寫入設定檔 |
| 右鍵 / 系統匣左鍵 | 開啟選單 |
| 滑鼠移到她身上 | 跳躍 3 次(Codex 的 hover 行為),離開後回到原本狀態 |
| 滑鼠靠近 | 盯著游標看(可在選單關閉) |
**選單功能**
@@ -121,6 +122,7 @@ npm run autostart:install # (可選)開機自動啟動
| `SessionEnd` | | 移除該 session | 最後一個結束時 👋 掰掰 |
| (無事件) | 游標移動 | 16 方向 `look` | |
| (無事件) | 拖曳 | `running-left` / `running-right` | |
| (無事件) | 滑鼠移到人物像素上 | `jumping` × 3 | |
規則: