我一直试图找出一种更简单的方法来为我一直在研究的简单RPG编写代码,如果无法通过的项目是单独添加的话,它可以很好地工作。当我尝试使用数组时,它会抛出一堆邪恶的错误。当然我是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。我可以使用哪些解决方案来使这更容易和更清洁。
先谢谢你们。
答案 0 :(得分:1)
将块MovieClip插入数组
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;
}