我正在製作HTML5和Javascript平臺遊戲。此時,地圖上的所有塊都作爲正方形處理。當方塊不是精確的正方形/長方形時,此方法是「醜陋的」。如何檢測與曲線的碰撞
檢查這個形象我做獲得更好的理解我的觀點:
案例一:的「底部保險槓」是觸摸該envolves所以運動停止塊正方形。
案例二:如果我使用與上面相同的方法,當玩家跳躍時,在「頂部保險槓」甚至接觸到該塊之前停止移動。
我應該如何接近情況下,兩個?我知道我必須檢查「Top Bumper」是否碰撞或者在曲線和其他2個邊緣之間的區域內。
該曲線如何?如何根據塊座標(x,y)和尺寸(寬度,高度)爲其生成函數。
注意:我想避免檢查曲線每一點的碰撞,因爲這對於CPU來說是非常昂貴的。
我喜歡這個問題。你如何生成曲線(和其他邊界)?它們是圖像還是由數學函數創建的?您期望使用多少種不同的塊? –
@ChadMcGrath嘿,謝謝你的回覆。我想使用大約10-15個不是完美的正方形/長方形的不同塊。我正在使用圖像PNG,但我也有這種圖像(SVG),我不使用的矢量版本。 –
有一些代碼用於檢測與貝塞爾曲線的碰撞,這是svg用來生成它們的原因。基本上,它看起來像從函數的導數中找到最小/最大值。不知道是否還有一個JavaScript庫,但如果你的SVG路徑沒有太多的部分,我認爲這是非常可行的,取決於你在屏幕上有多少曲線(你的一個圖像看起來只有1條曲線)。鋸齒狀的,我們可以檢測線段。我們也可以通過僅查找與邊框相撞的物體來作弊。 –