Skip to content

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_ROWS89
GRID_COLS68
START_CELLVector2i(7, 0)Vector2i(8, 0)
  • 頂部加一排(row 0,目前為佔位直管,待設計)
  • 右側加兩排(col 6–7,目前為佔位直管,待設計)

PIPE_PORTS 校正

根據實際圖片的開口方向重新定義(rot=0 基準):

typerot=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 可正常旋轉。