2013年11月27日 星期三

Dropping Test


朋友在開發的網頁小遊戲中,需要把魚兒拖拉到魚缸,假若玩家不是在魚缸中放手的話,魚兒會跳回原位,或者跳入魚缸,視乎哪邊最近。他想知道如何能算出這個動作的路徑,於是我寫了一個 Javascript 程序示範一下。

以前寫遊戲時也有做過類似的運算。我用的是 Sine(0) - Sine(180) 乘以想要的高度作為拋物線的軌道;若兩點不是在同一水平時,會把高差除以步驟數(height/step),再在每次計算好的 Y 值加入這個值來作為位移(offset)。由於今次需要在某個時點改變層次(Layer),同時加入了這個運算,以 Y 值判定是否到頂而需要改變層次。紅色線是上升中,黃色是下降中,綠色是終點。

最後朋友在網上找到了一個的計算路徑的源碼,但效果跟我的差不多。雖然今次沒有用我那段程式,但也不失為一個好的練習機會,讓我更熟悉 Javascript 編程。

沒有留言: