2015-04-21 87 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