2015-04-21 88 views
1

我一直在想出一個更簡單的方法來編寫這個簡單的RPG遊戲,我一直在努力,如果無法通過的項目被單獨添加,它會很好地工作。當我嘗試使用數組時,它會拋出一堆邪惡的錯誤。當然,我是AS3的新手,但我試圖找到解決方案,沒有運氣。AS3碰撞檢測陣列

if(heroMC.hitTestObject(block1)) { 
    hitObj = true; 
    heroMC.x = gX; 
    heroMC.y = gY; 
} else if(heroMC.hitTestObject(bridgeBlock2)) { 
    hitObj = true; 
    heroMC.x = gX; 
    heroMC.y = gY; 
} if(heroMC.hitTestObject(bridgeBlock3)) { 
    hitObj = true; 
    heroMC.x = gX; 
    heroMC.y = gY; 
} else { 
    hitObj = false; 
    gX = heroMC.x; 
    gY = heroMC.y; 
} 

然後我將每個單獨的條目添加到我的列表中。如果heroMC與該對象相交,則它將hitObj的值更改爲true。如果什麼都沒有碰撞,hitObj將返回爲false。我可以使用什麼解決方案來使這更簡單和更清潔。

在此先感謝你們。

回答

1

將您塊影片剪輯到一個數組

var blocksArray: Arry = new Array(block1, bridgeBlock2, bridgeBlock3); 

添加捕捉輸入幀處理事件的變化

this.addEventListener(Event.ENTER_FRAME, onEnterFramehandler); 

function onEnterFramehandler(e: Event): void { 
     //initially set it to false 
     hitObj = false; 
     for (var i: uint = 0; i < blocksArray.length; i++) { 
      //If hit the object set it to true; 
      if (heroMC.hitTestobject(blocksArray[i])) { 
       hitObj = true; 
       //set the position of the heroMc if true 
       heroMC.x = gX; 
       heroMC.y = gY; 
       break; 
      } 
     } 
     //get the position of the heroMc if false   
     gX = heroMC.x; 
     gY = heroMC.y; 
    } 
+0

謝謝你幫我本尼! – Naythan