幾個看起來奇怪但有原因的設計

球為什麼會互相彈開

初版的球不會互相碰撞,會直接穿過去疊在一起。問題在最後一個階段爆出來: 凍結選號時兩顆球幾乎在同一個位置,號碼標籤疊著,你知道答案卻點不到

現在偵測到重疊就把兩顆球推開,並交換法線方向的速度分量(等質量彈性碰撞)—— 球因此會像撞球一樣互彈。

⚠️ 只有在兩顆球正在互相靠近時才交換速度。已經在分開的不重複套用, 否則兩顆球會卡在原地不停抖動。

順帶一提,這個修正讓遊戲更難也更好玩:碰撞讓路徑無法預測,「記住它往哪個方向跑」這個 偷吃步失效了。

為什麼每一關的顏色都不一樣

初版永遠是「目標黃色、其他綠色」。玩久了很單調,而且固定配色會讓人開始靠色彩記憶而不是位置追蹤。

現在每一關隨機挑色相,只保證一件事:兩色的色相至少相差 150 度。 飽和度與明度走主題的 CSS 變數,所以在暗色/亮色/暖色三種主題下都讀得清楚。

150 度是刻意訂得很嚴的 —— 畫面上只有兩種顏色,不夠遠就會出現「記憶階段根本看不出哪顆亮著」 這種一開始就輸掉的關卡。

為什麼沒有排行榜

原本想做的是「你贏過多少人、排名前幾 %」。做不下去的原因很單純: 那需要收集其他玩家的分數,也就是需要一個後端。

而這個站上每一個工具與遊戲的共同前提是「沒有後端、資料不會離開你的電腦」—— 隱私權政策就是這樣寫的。為了一個排行榜先破例,代價是那句話對所有工具同時變成假的。

所以目前只有本機最佳關卡數,存在你自己的瀏覽器裡。清除瀏覽器資料就沒了, 換一台電腦也不會跟著走 —— 這是那個前提的代價,不是忘記做。

真要做的話會是匿名百分位(只上傳一個分數、不上傳任何身分),那沒有姓名榜的 灌水與冒名問題。但那仍然是「先改政策、再加功能」的順序,不是順手加一個 API。

為什麼不能切分頁

追蹤階段切到別的分頁再切回來,球會瞬間跳到新位置。原因是瀏覽器會完全暫停背景分頁的 動畫更新(實測:分頁隱藏時 1 秒 0 幀),回來時遊戲要一次補上這段時間的移動。

這是瀏覽器的省電行為,網頁擋不掉也改不了。所以請把那 10~24 秒留給遊戲。

下載這一頁的 .md 原始檔 用編輯器打開它,就是一份現成的範例文件。

← 回手冊目錄