Actionscript中的实例 - 通用碰撞检测

时间:2015-04-12 23:32:55

标签: actionscript-3 flash collision-detection

我尝试过使用hitTestObject(),但这似乎要求我使用特定的实例进行调用,使得它或多或少无用,除非我想让几十个对象每帧进行数十次碰撞检查,实施起来似乎很浪费和烦人。

有没有办法根据类而不是实例进行碰撞检查?

也许相当于此的东西: http://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/place_meeting.html

或者,是否有任何函数返回与我正在检查的对象重叠坐标的对象列表?

1 个答案:

答案 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
    }
}

如果计算速度成为一个问题,那么就会有广泛的碰撞检测技术来缩短时间。四叉树就是一个例子。