1

我目前正在製作飛揚的小鳥,並將其從僅矩形改變爲我自己的圖像等。我似乎無法弄清楚如何做到這一點,所以當鳥(不規則形狀)碰到矩形時,它會死亡。當它是一個奇怪的形狀時,我不知道如何編碼碰撞。這是一張圖片。我畫這樣的鳥。與圖像碰撞(不規則形狀)

var img = document.getElementById("bird"); 
brush.drawImage(img, 20, this.y); 

附加是遊戲,鳥和代碼的圖片。

Picture of the game

Picture of the game

+0

[不規則形狀碰撞檢測]的可能重複(http://stackoverflow.com/questions/11367991/collision-detection-of-irregular-shapes) – djechlin

回答

0

你需要實現對撞機。他們準備在遊戲引擎,統一使用,但如果你想自己實現考慮以下幾點:

  1. 爲你的鳥和牆壁創建撞機部件。 Collidiers是簡化的形狀,使得碰撞檢測算法在CPU速度方面更容易和更快。例如,對於鳥類,它可以圍繞它併爲牆壁設置矩形。
  2. 在更新幀事件期間,檢查您的鳥的邊界圓與牆矩形相交。這是簡單的數學,你可以在谷歌找到「圓形矩形交集」的公式。
  3. 如果檢測到碰撞 - 你的鳥應該崩潰下來)

這就是它!

0

這是一本好書,關於這個問題: 2D遊戲的碰撞檢測:由托馬斯Schwarzl介紹到衝突幾何遊戲

可以找到例如這裏是 http://www.amazon.de/2D-Game-Collision-Detection-introduction/dp/1479298123/ref=sr_1_1?ie=UTF8&qid=1448932508&sr=8-1&keywords=2d+collision

如果你能處理矩形碰撞,試着用矩形填充你複雜的圖形的形狀並測試它們中的每一個。在你的情況下,嘗試使用一個圓形的鳥。

+0

儘管此鏈接可能回答問題,但最好包含這裏的答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/10393805) –

+0

我編輯了這本書的標題。 – REISWOLF