【发布时间】:2014-03-11 03:09:26
【问题描述】:
我有一辆坦克。
我有一个英雄(可控角色)。
坦克有一个嵌套的动画剪辑,它的表面积非常薄。
然而,当它甚至没有碰到英雄时,它就会检测到碰撞。
public class tank_sight extends MovieClip
{
private var _root:MovieClip;
public function tank_sight()
{
addEventListener(Event.ADDED, beginClass);
}
private function beginClass(event:Event):void
{
_root = MovieClip(root);
addEventListener(Event.ENTER_FRAME, loop);
}
private function loop(event:Event):void
{
if(this.hitTestObject(_root.hero.hitbox))
{
this.gotoAndStop(2);
trace("HIT");
fire();
}
else
{
this.gotoAndStop(1);
}
}
private function fire():void
{
var shell:Shell = new Shell(x, y, rotation - 180);
_root.addChild(shell);
}
}
怎么了?没看懂。
编辑:视线在旋转,所以这可能就是原因。我尝试在播放器类上使用此代码:
point = _root.tanks.barrel.sight.localToGlobal(new Point());
if(this.hitTestPoint(point.x, point.y, false))
{
trace("HIT");
}
但它不起作用..它永远不会追踪“HIT”,除非我在某些时候站在某个奇怪的位置。
【问题讨论】:
标签: actionscript-3 nested collision movieclip hittest