使用数组和hitTest - AS3

时间:2016-11-29 05:42:03

标签: arrays actionscript-3 hittest

从我朋友告诉我的情况来看,这应该有效,但事实并非如此。

var P2hb:Array = new Array(P2char1, P2char2, P2char3);
var P2life:Number = 0;  

addEventListener(Event.ENTER_FRAME, framecheck)
function framecheck(event:Event):void
{
if (P2hb.hitTestObject(P1attack)) { P2life-=2; }
}

这是一个通用代码,但它与我的相同。基本上, P2hb中的所有元素都是舞台上的 movieclips 。 我想说,如果P1attack点击数组中的任何对象,那么P2life将减少2,而不必为每个单独的对象键入hitTestObject()
我似乎无法让它发挥作用。谁能告诉我我做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

只需循环遍历数组中的每个“movieClip”(例如,使用for循环)并检查与其他对象的碰撞:

function framecheck(event:Event):void
{
    for each (var enemy in P2hb) {
        if (enemy.hitTestObject(P1attack)) {
            P2life-=2;
            trace("hit occurred! P2life: "+P2life);
        }
    }
}