碰撞检测Actionscript 3

时间:2011-10-29 17:12:56

标签: flash actionscript-3 adobe

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时。

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

请帮忙。

2 个答案:

答案 0 :(得分:1)

  1. kulki.hitTestObject(linia)无效,因为hitTestObjectDisplayObject而不是Array的方法。

  2. 确保所有对象都已添加到显示列表中。

答案 1 :(得分:0)

   kursor.hitTestObject(linia) - OK

表明kursor&amp; linia已正确实例化并添加到显示列表中。由此您可以推断出您的“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