从我朋友告诉我的情况来看,这应该有效,但事实并非如此。
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()
。
我似乎无法让它发挥作用。谁能告诉我我做错了什么?
提前谢谢。
答案 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);
}
}
}