我尝试过使用hitTestObject(),但这似乎要求我使用特定的实例进行调用,使得它或多或少无用,除非我想让几十个对象每帧进行数十次碰撞检查,实施起来似乎很浪费和烦人。
有没有办法根据类而不是实例进行碰撞检查?
或者,是否有任何函数返回与我正在检查的对象重叠坐标的对象列表?
答案 0 :(得分:1)
如果我正确理解你的问题,那么你有几个同一个类的对象,每个对象需要检查彼此之间的冲突?
是的,您必须浏览每个对象并对其他对象执行碰撞检查。我想你可以自己编写一个hitTestClass函数,但在幕后它仍然是一样的。至于实施它,它并没有那么糟糕:
for( var i:int = 0; i < asteroids.length -1; ++i )
{
var a:Asteroid = asteroids[ i ];
for( var j:int = i+1; j < asteroids.length; ++j )
{
var b:Asteroid = asteroids[ j ];
var isColliding:Boolean = a.hitTestObject( b );
//Code here to do whatever in the case of collision
}
}
如果计算速度成为一个问题,那么就会有广泛的碰撞检测技术来缩短时间。四叉树就是一个例子。