2026-05-06開發日誌
- 日期:2026-05-06
- 專案:Cá xấu Duckduck
- title: power_puzzle 視覺改版 + 格線調整 + PIPE_PORTS 校正
今日總結
延續 04-27 的 BFS 通電系統,今天專注在視覺呈現、格線尺寸調整,以及接口表的正確化。
通電改為換圖(取代變色)
原本通電是把 sprite.modulate 改成綠色,現在改為切換貼圖:
| 狀態 | 貼圖 |
|---|---|
| 未通電 | 1.png, 2.png, 3.png, 4.png, duckduck.png |
| 通電 | 1i.png, 2i.png, 3i.png, 4i.png, duckducki.png |
新增 TEX_PATHS_ON 陣列,_load_textures() 同時載入兩組,_update_flow() 改用 sprite.texture 切換。
格線尺寸重構
正方形格子
原本 tile 寬高分開計算,導致格子不是正方形。改為:
gdscript
_tile_size = minf(
(box.size.x - (COLS-1) * TILE_GAP) / COLS,
(box.size.y - (ROWS-1) * TILE_GAP) / ROWS
)取寬高兩邊較小值,確保格子是正方形。Grid 整體垂直置中、水平靠左(_grid_offset.x = 0)。
圖片縮放
改為 sc = _tile_size / maxf(tex.get_width(), tex.get_height()),圖片填滿格子且保持正方形不拉伸。
TILE_GAP
最終設定為 2.0,有一點點間隙。_cell_center() 和 _get_cell_at() 都加入 step = _tile_size + TILE_GAP,位置與點擊偵測一致。
格線擴充
| 項目 | 舊值 | 新值 |
|---|---|---|
| GRID_ROWS | 8 | 9 |
| GRID_COLS | 6 | 8 |
| START_CELL | Vector2i(7, 0) | Vector2i(8, 0) |
- 頂部加一排(row 0,目前為佔位直管,待設計)
- 右側加兩排(col 6–7,目前為佔位直管,待設計)
PIPE_PORTS 校正
根據實際圖片的開口方向重新定義(rot=0 基準):
| type | rot=0 開口 |
|---|---|
| 1 直管 | 上、下(N-S) |
| 2 轉角 | 右、下(E-S) |
| 3 T型 | 上、右、下(N-E-S) |
| 4 十字 | 全通(不變) |
每旋轉一格(+90° 順時針),開口方向依序轉換。
type=4 十字管通電顯示修正
原本 type=4 沒有加入 _cells,導致通電時貼圖不更新。
修正:改為 if type >= 1 and type <= 4 加入 _cells,_check_solution() 跳過 type=4(全通無解答旋轉),type=4 可正常旋轉。
