2016-06-30 55 views
-1

如何讓對象互相檢測而不必如此精確?目前,我正在處理的程序只允許在左上角精確匹配項目時進行匹配,但我沒有使用hitTestPoint,我使用了hitTestObject。以下是我的代碼。hitTestObject無法正常工作AS3

if (bin1.hitTestObject(item)){ 
     updateShape(item, bin1); 
+0

你是什麼意思,「不必如此精確?」 –

+0

,因爲它只能檢測到其他物體,當它碰到左上角時,它不能檢測到它拖到其他地方的時間。 – CHIGGAJX

+0

[AS3中的位圖命中測試]可能的重複(http://stackoverflow.com/questions/13046930/bitmap-hittesting-in-as3) –

回答

1

如果bin1item都的DisplayObject,我不明白他們怎麼會不(的DisplayObject是可以被一幫其他類似影片剪輯和雪碧的擴展一個基類),那麼你應該能夠只是自己做一點快速和骯髒的計算。你提到問題的方式讓我相信bin1item的起源在左上方,所以你應該可以使用這段代碼來看看它們所居住的整個矩形是否正在打中,哪些不是全部如果對象旋轉準確,但它聽起來就像是你要找的東西差不多:

if(Math.abs((bin1.x+bin1.width/2)-(item.x+item.width.2)) < bin1.width/2 + item.width/2 && 
    Math.abs((bin1.y+bin1.height/2)-(item.y+item.height/2)) < bin1.height/2 + item.height/2) 
     updateShape(item,bin1); 

如果它們的起源實際上不是在左上角和居中,刪除所有.width/2.height/2零件圓括號中的.x.y部分。希望這有助於!