我有一个倒车的汽车游戏。当敌人和汽车相互碰撞时游戏结束了。我遇到了碰撞问题。 汽车和敌人彼此靠近时会受到打击,但是它们之间仍有很大的空间。
请检查该图像。 https://s8.postimg.cc/p85w0wm2t/image.gif
我使用此代码。
if(dubageri1.hitTestObject(carMC)){
dubageri1.gotoAndPlay(2);
geribas.gericarpti = true;
stage.removeEventListener(Event.ENTER_FRAME,engeller1geri1lev1)
}
我也尝试过类似的方法。但是这次碰撞已经晚了。
var nDistX:Number = Math.abs ( carMC.x - dubageri1.x );
var nDistY:Number = Math.abs ( carMC.y - dubageri1.y );
var nDistance:Number = Math.sqrt ( nDistX * nDistX + nDistY * nDistY );
var sDistx:Number = Math.abs ( carMC.x - dubageri1.x );
var sDisty:Number = Math.abs ( carMC.y - dubageri1.y );
var nsistance:Number = Math.sqrt ( sDistx * sDistx + sDisty * sDisty );
collect.text=String(nDistance);
if ( nDistance < 120 )
{
trace("aha");
dubageri1.gotoAndPlay(2);
stage.removeEventListener(Event.ENTER_FRAME,dsaa);
}
注意:我的对象是作为矢量制作的。
有人告诉我我做错了什么吗?
更新
var aPoint:Point = new Point();
aPoint = carMC.localToGlobal(aPoint);
var bPoint:Point = new Point();
bPoint = dubageri1.localToGlobal(bPoint);
stage.addEventListener(Event.ENTER_FRAME,ilkcikis);
function ilkcikis(event:Event) {
bPoint = root.globalToLocal(bPoint);
var zHit:Boolean = carMC.hitTestPoint(bPoint.x, bPoint.y, true);
textbaba.text = zHit? "! HIT !": "NO HIT";
carMC.x=mouseX;
carMC.y=mouseY;
}