我要做的是检查名为enemy的影片剪辑实例与名为laser的影片剪辑实例的碰撞(位于名为ship的影片剪辑中)。
当敌人与船发生碰撞时,我希望主时间轴转到第2帧。
当敌人与激光碰撞时,我希望主时间轴转到第3帧。
问题是当ship.laser与敌人发生碰撞时,它也会像船只与敌人发生碰撞一样。
有没有办法在不检查船只和敌人的情况下检查ship.laser和敌人的碰撞?
addEventListener(Event.ENTER_FRAME, collide);
function collide(event:Event)
{
if (enemy.hitTestObject(ship) )
{
gotoAndStop(2);
trace("hit Ship");
}
if (enemy.hitTestObject(ship.laser))
{
trace("hit laser");
gotoAndStop(3);
}
}
答案 0 :(得分:1)
如果敌人与激光碰撞,它也会与船发生碰撞,这是正常的,因为激光是船的一部分。
你能做的只是检查敌人是否与激光相撞:
if (enemy.hitTestObject(ship) )
{
if (enemy.hitTestObject(ship.laser))
{
// collides with ship AND laser
} else {
// collides with ship only, but not with the laser
}
}