2011-04-21 70 views
0

我正在製作一款迷宮遊戲,並將迷宮的邊緣視爲動畫片段。我試圖測試玩家是否測試了迷宮讓他停止使用此代碼。命中測試迷宮

If(player.hitTestObject(Maze)) 
{ 
    function() 
} 

但是是否它實際上觸摸迷宮(它在裏面的空白空間)它總是註冊爲觸摸。有沒有什麼辦法解決這一問題?

+2

您可能想要使用BitmapData.hitTest。這是一個很好的例子:[link](http://www.mikechambers.com/blog/2009/06/24/using-bitmapdata-hittest-for-collision-detection/)。 – Corey 2011-04-21 22:24:23

回答

1

您不必使用任何物理API。它們太重,太複雜,而且你的任務很簡單。嘗試替換hitTestPoint的hitTest方法

if(Maze.hitTestPoint(player.x,player.y)) 
{ 
    function() 
} 

乾杯!

1

這是你在找什麼:

http://www.mikechambers.com/blog/2009/06/24/using-bitmapdata-hittest-for-collision-detection/

之所以則hitTest總是說真的,就是它只檢查,看是否邊框兩個物體相互接觸。關於這個意思的更多nfo可能可以在上面的鏈接中找到。以上鍊接中的內容是對如何在Flash中進行像素完美命中測試的解釋。 :)此外,如果你正在使用這樣的和/或任何一種物理碰撞做一個遊戲,你可能會在本教程的興趣:

http://gotoandlearn.com/play.php?id=135

這是一個關於世界建築套件Box2D的視頻,可能是最流行的閃存物理庫。

+0

那就是我想的。我查了一下,它說Flash在對象周圍繪製了一個命中的測試矩形,除了矩形以外,它都是不好的。感謝您的鏈接! – master565 2011-04-22 05:13:39

+0

沒問題,是的,這是真的。即使你有鑽石形狀,閃光燈也會以90度的角度畫出一個矩形來包圍它。您可以通過在Flash播放器中右鍵單擊並啓用「顯示重繪區域」來以可視方式查看。 – 2011-04-22 07:28:38