我正在寫一個遊戲,用戶有一艘太空船,需要「殺死」一些敵人,試圖殺死他。
我有一個「紋理2D」用戶的太空船照片,子彈圖片和敵人的照片。
我想知道,在用戶向敵人射擊子彈後,如何檢查子彈是否傷害了敵人?
換句話說 - 什麼函數檢查一張圖片是「覆蓋」(甚至是部分)另一張?如何檢查兩張圖片是否「相互觸摸」?
Thnx! :-)
我正在寫一個遊戲,用戶有一艘太空船,需要「殺死」一些敵人,試圖殺死他。
我有一個「紋理2D」用戶的太空船照片,子彈圖片和敵人的照片。
我想知道,在用戶向敵人射擊子彈後,如何檢查子彈是否傷害了敵人?
換句話說 - 什麼函數檢查一張圖片是「覆蓋」(甚至是部分)另一張?如何檢查兩張圖片是否「相互觸摸」?
Thnx! :-)
請看看「2D碰撞檢測」主題。當您使用XNA以下站點應該給你一個良好的開端: http://www.progware.org/Blog/post/XNA-2D-Basic-Collision-Detection.aspx
,我不知道那做任何預先存在的API函數,但實現它自己將是一個很好的鍛鍊。
你應該知道每個圖片的起源的x/y座標。你也應該知道每張照片的尺寸。
您可以計算圖片的邊界框,以及是否存在任何共同的點。
基本上你需要檢測兩個不透明像素是否重疊,但爲了防止不必要的計算,首先檢查你的艦船和敵艦的邊界框是否重疊(因爲像素不會重疊if邊界框不)。
Riemers.net有一個很好的教程。這是關於來自應用集線器的每像素碰撞檢測的good sample project。
嗯,這可能是一個好主意,但是我聽說有一個函數存在,如果我使用它,我的程序會看起來像麪糊。 – Inball 2011-03-16 09:17:00