Actionscript 3 需要hitTestPoint解决方案来替换hitTestObject

Actionscript 3 需要hitTestPoint解决方案来替换hitTestObject,actionscript-3,hittest,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(

我需要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();
它使用ProjectleMC和meandude hitTestObject的边界框。我想让投射物的中心点C和meandude交叉点记录动作,而不是命中测试点。我试着自己换,但我无法让它工作


谢谢

在没有看到更多代码的情况下,不清楚您的确切问题是什么。但作为第一个猜测,我认为您想要解决以下问题:

当你使用hitTestObject时,当你的射弹击中卑鄙小人时,你的hittest不会被触发

您试图通过使用hitTestPoint来解决问题吗


测试可能不会简单触发,因为您的射弹移动太快。如果在colisison之前的XY_这个帧和然后的XY_下一帧之间的距离大于你的小人的大小,它就永远不会碰撞。我建议您不要在游戏中使用hitTestObject进行任何碰撞,因为它不可靠,尤其是对于快速移动的显示对象。

Flash没有一个良好的对象对对象碰撞测试。如果Projectlemc和meandude都是位图,您可以试试。

很抱歉让人困惑。让我再试一次。有一个movieclip projectlemc,如果它击中另一个movieclip meandude,则结束游戏。上面的代码很好,但是因为meandude是一个有机形状,而不是矩形,所以投射物看起来永远不会击中有机形状。。。是两个边界框在碰撞。我希望炮弹的中心必须穿过卑鄙小人的中心,这样比赛才能结束。我想这就是关键点?但是,我不知道如何在上面的代码中编码。是的,这是Flash中任何MC、精灵或形状的正常行为。您必须使用固定的线边界创建自己的碰撞帧。如果你的物体可以被一个凸面形状包围,那就很容易了。请参阅如何在总体上实现这一点。这也要求您不要使用hitTestPoint/Object,因为它们总是针对未旋转的边界框工作。