需要一个hitTestPoint解决方案来替换hitTestObject

时间:2013-12-14 18:34:25

标签: actionscript-3 hittest

我需要针对此碰撞问题的as3解决方案:

我有这段代码:

else if (objectArray[i].toString().indexOf("meandude") != -1) {
            //if the object is a meandude and hits it, game over
            if (projectileMC.hitTestObject(objectArray[i])) {
                removeEventListener(Event.ENTER_FRAME,mainEnterFrame);loseGame();

使用projectileMC和meandude(hitTestObject)的边界框。我喜欢它,因此projectileMC和meandude crossing的中心点会记录动作(hitTestPoint)。我试图自己切换它,但我没有让它工作。

由于

2 个答案:

答案 0 :(得分:0)

如果不了解更多代码,就不清楚您的确切问题是什么。但作为第一个猜测,我认为你想解决以下问题:

当您使用hitTestObject时,当您的射弹击中“meandude”时,您的击中未被触发。

您尝试使用hitTestPoint来解决问题吗?

测试可能不会触发简单,因为你的弹丸移动速度太快。如果在colisison之前XY_ThisFram与XY_NextFrame之间的距离大于“meandude”的大小,它将不会发生碰撞。我建议你不要使用hitTestObject在你的游戏中做任何碰撞,因为它不可靠,特别是对于快速移动的显示对象。

答案 1 :(得分:0)

对于一般情况,Flash没有良好的对象到对象命中测试。如果projectileMC和meandude都是位图,您可以尝试BitmapData.hitTest