我将在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);