Использование массивов и hitTest - AS3
Из того, что мой друг сказал мне, это должно работать, но это не так.
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
видеоклипы на сцене. Я хочу сказать, что если P1attack
поражает любой из объектов в массиве, затем P2life
упадет на 2, без необходимости набирать hitTestObject()
для каждого отдельного объекта.
Я не могу заставить его работать. Может кто-нибудь сказать мне, что я делаю не так?
Заранее спасибо.
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);
}
}
}