Actionscript 3 ActionScript 3中的冲突检测性能如何?

Actionscript 3 ActionScript 3中的冲突检测性能如何?,actionscript-3,flash,collision-detection,sprite,Actionscript 3,Flash,Collision Detection,Sprite,我将使用hitTestObject()为每帧使用相当多的精灵(例如4*500)。将会有很多错误,只有很少或没有正确的 我想我可以先检查距离sprite1.x-sprite2.x和sprite1.y-sprite2.y,这样我就可以只检查附近的对象是否发生碰撞。然后我想知道ActionScript例程是否已经首先检查了距离?Flash在很多方面都进行了优化,所以我需要费心提高碰撞检测的性能吗 // something like this ? public static function near

我将使用
hitTestObject()
为每帧使用相当多的精灵(例如
4*500
)。将会有很多错误,只有很少或没有正确的

我想我可以先检查距离
sprite1.x-sprite2.x
sprite1.y-sprite2.y
,这样我就可以只检查附近的对象是否发生碰撞。然后我想知道ActionScript例程是否已经首先检查了距离?Flash在很多方面都进行了优化,所以我需要费心提高碰撞检测的性能吗

// something like this ?

public static function near(sprite1: Sprite, sprite2: Sprite): Boolean
{
    return (Math.abs(sprite1.x - sprite2.x) < 64) && (Math.abs(sprite1.y - sprite2.y) < 64);
}

if (near(sprite1, sprite2))
    if (sprite1.hitTestObject(sprite2))
        collide(sprite1, sprite2);
//像这样的吗?
公共静态函数near(sprite1:Sprite,sprite2:Sprite):布尔值
{
return(Math.abs(sprite1.x-sprite2.x)<64)和&(Math.abs(sprite1.y-sprite2.y)<64);
}
if(靠近(第1、2支路))
if(sprite1.hitTestObject(sprite2))
碰撞(精灵1,精灵2);

否,
hitTestObject()
未以这种方式进行优化。因此,如果您可以降低
hitTestObject()
调用的数量,那么就这样做。

否,
hitTestObject()
不是这样优化的。因此,如果您可以降低hitTestObject()调用的数量,请这样做。

如果您想要在许多对象上获得性能,您应该尝试形状碰撞。如果您不想自己编写代码,只需查看或。这两个引擎都经过了大量优化,可以进行此类计算。

如果您想在许多对象上获得性能,应该尝试形状碰撞。如果您不想自己编写代码,只需查看或。两台发动机都经过了大量优化,可以进行这种计算。

试试看。用hitTest换成距离检查并不难。根据你的个人知识来衡量它的性能会对你有好处。谷歌“as3碰撞性能hitTestObject”,我敢肯定你会找到关于这个主题的大量非常详细的信息。试试吧。用hitTest换成距离检查并不难。根据你的个人知识来衡量它的性能会对你有好处。谷歌“as3碰撞性能hitTestObject”,我敢肯定你会发现关于这个主题的大量非常详细的信息,“像素完美碰撞”是错误的。我测试了两个圆圈。它们的边界框发生碰撞,但绘制的圆不发生碰撞。你是对的,我错了,我将编辑我的答案。尽管如此,答案的逻辑仍然是正确的<代码>hitTestObject()没有像Box2D或Nape那样优化。“像素完美碰撞”是错误的。我测试了两个圆圈。它们的边界框发生碰撞,但绘制的圆不发生碰撞。你是对的,我错了,我将编辑我的答案。尽管如此,答案的逻辑仍然是正确的<代码>hitTestObject()没有像Box2D或Nape那样优化。