初版的球不會互相碰撞,會直接穿過去疊在一起。問題在最後一個階段爆出來: 凍結選號時兩顆球幾乎在同一個位置,號碼標籤疊著,你知道答案卻點不到。
現在偵測到重疊就把兩顆球推開,並交換法線方向的速度分量(等質量彈性碰撞)—— 球因此會像撞球一樣互彈。
⚠️ 只有在兩顆球正在互相靠近時才交換速度。已經在分開的不重複套用, 否則兩顆球會卡在原地不停抖動。
順帶一提,這個修正讓遊戲更難也更好玩:碰撞讓路徑無法預測,「記住它往哪個方向跑」這個 偷吃步失效了。
初版永遠是「目標黃色、其他綠色」。玩久了很單調,而且固定配色會讓人開始靠色彩記憶而不是位置追蹤。
現在每一關隨機挑色相,只保證一件事:兩色的色相至少相差 150 度。 飽和度與明度走主題的 CSS 變數,所以在暗色/亮色/暖色三種主題下都讀得清楚。
150 度是刻意訂得很嚴的 —— 畫面上只有兩種顏色,不夠遠就會出現「記憶階段根本看不出哪顆亮著」 這種一開始就輸掉的關卡。
原本想做的是「你贏過多少人、排名前幾 %」。做不下去的原因很單純: 那需要收集其他玩家的分數,也就是需要一個後端。
而這個站上每一個工具與遊戲的共同前提是「沒有後端、資料不會離開你的電腦」—— 隱私權政策就是這樣寫的。為了一個排行榜先破例,代價是那句話對所有工具同時變成假的。
所以目前只有本機最佳關卡數,存在你自己的瀏覽器裡。清除瀏覽器資料就沒了, 換一台電腦也不會跟著走 —— 這是那個前提的代價,不是忘記做。
真要做的話會是匿名百分位(只上傳一個分數、不上傳任何身分),那沒有姓名榜的 灌水與冒名問題。但那仍然是「先改政策、再加功能」的順序,不是順手加一個 API。
追蹤階段切到別的分頁再切回來,球會瞬間跳到新位置。原因是瀏覽器會完全暫停背景分頁的 動畫更新(實測:分頁隱藏時 1 秒 0 幀),回來時遊戲要一次補上這段時間的移動。
這是瀏覽器的省電行為,網頁擋不掉也改不了。所以請把那 10~24 秒留給遊戲。
下載這一頁的 .md 原始檔 用編輯器打開它,就是一份現成的範例文件。