2013-08-20 74 views
0

我得到一個類型的錯誤中取出時類型錯誤(術語是不確定的,沒有屬性)在以下功能時,子彈擊中了斯巴達移除一個孩子,從一個數組

子彈是一個數組

斯巴達是一個數組

和該函數基本上移動子彈和斯巴達同時檢查如果它們被碰撞,如果他們是都除去。

function loop(event:Event) 
{ 
    for (var bcount=0; bcount < bullets.length; bcount++) 
    { 
     if (bullets[bcount].x <= 1055) 
     { 
      bullets[bcount].x = bullets[bcount].x + bulletSpeed; 
     } 
     else 
     { 
      removeChild(bullets[bcount]) 
      bullets.splice(bcount, 1) 
      bcount-- 
     } 

     for (var spcount=0; spcount<spartans.length; spcount++) 
     { 
      spartans[spcount].x = spartans[spcount].x - spartanSpeed 
      if (bullets[bcount].hitTestObject(spartans[spcount])) 
      { 
       removeChild(spartans[bcount]) 
       spartans.splice(spcount, 1) 
       spcount-- 
       removeChild(bullets[bcount]) 
       bullets.splice(bcount, 1) 
       bcount-- 

      } 
     } 
    } 


} 
+0

您在哪裏定義數組?在爲循環函數添加事件偵聽器之前或之後? – putvande

回答

0

首先

在第二循環中,我認爲要刪除斯巴達[spcount]

因此改變這一行

removeChild(spartans[bcount]) 

removeChild(spartans[spcount]) 

在第二個循環中,您應該檢查bcount是否小於零。因爲在第一個循環和第二個循環中,你都減少了bcount,所以bcount可以是-1。

例如,項目符號[0]的x大於1055,所以bcount將爲-1。如果沒有發生,在第二個循環中,如果碰撞發生在某些時候,bcount將小於0.

相關問題