2011-10-29 16 views
-1
var kursor:Kursor = new Kursor(); 
var kulki:Array = new Array(); 

var i:int = 0; 
for(;i<40;i++){ 
    var kula:Kula = new Kula(); 
    kulki.push(kula); 
} 

function sprawdzKolizje(event:Event){ 

if(kursor.hitTestObject(linia)){ 
    trace("wykrylem"); 
    } 
}` 

私がコリジョンを検出すると、通常のMC:liniaのkursorが正常に検出されます。私がliniaで配列のMCを検出したとき、何も検出されませんでした。衝突検出Actionscript 3

kursor.hitTestObject(linia) - OK 
kulki.hitTestObject(linia) - BAD 
kula.hitTestObject(linia) - BAD 
kulki[0].hitTestObject(linia) - BAD 

助けてください。

答えて

1
  1. kulki.hitTestObject(linia)hitTestObjectDisplayObjectないArrayする方法であるため、機能しません。

  2. すべてのオブジェクトが表示リストに追加されていることを確認してください。そのkursor & liniaを示すだろう

0
kursor.hitTestObject(linia) - OK 

が適切にインスタンス化され、表示リストに追加されました。それで、あなたの "kula"オブジェクトが問題の原因であるかもしれないことを控除することができます。

for(var i:int; i<40 ; i++) 
    { 
     var kula:Kula = new Kula(); 
     kulki.push(kula); 
    } 

最後に、あなたのオブジェクトをチェックすることが、あなたにうまくいかないかの指示を与えることがあります...より良い動作する可能性があります。

trace(kula); 
    kula.hitTestObject(linia); 

    trace(kulki); 
    trace(kulki[0]); 
    kulki[0].hitTestObject(linia) - BAD