Actionscript 3碰撞

时间:2012-04-27 11:17:32

标签: actionscript-3 flash actionscript collision-detection collision

Frog

我正在开发一款名为Frog的Flash游戏,目前我的青蛙和苍蝇之间碰撞的代码没有按预期工作。我想拥有它所以它的工作方式类似于下面链接的方法(最后一个例子)。

Collision detection methods, hitTest and hitTestObject alternatives

任何帮助都将不胜感激。

function hitTargetFunction():void {
    for (i = 0; i < insectsMC.length; i++) {
        for (j = 0; j < insectsMC[i].length; j++) {
            if (frogMC.hitTestObject(insectsMC[i][j])) {
                trace('Target: ' + insectsMC[i][j].name);
                score +=  1;
                trace('Score: '+score);
                insectsMC[i][j].x = 0 - insectsMC[i][j].width * 2;
            }
        }
    }
}

3 个答案:

答案 0 :(得分:2)

我可能会建议尝试一下梦幻般的Collision Detection Kit吗?

我相信它会做你需要的一切,甚至更多。它也是AS3,这是你的代码示例所写的,所以我希望你发现它很有用。

答案 1 :(得分:1)

在这种情况下,在frog movieclip中创建一个movieclip / sprite可能是最好的选择。 PixelPerfectCollision是非常棒的和有用的(但是在较大的游戏中,价格昂贵)但是碰撞将与青蛙的任何一块相撞。你当然可以分开你的青蛙电影剪辑,只是在舌头上做PixelPerfectCollision。但如果这是为了课程作业,我会坚持只在青蛙内部的某种显示对象上做hitTest()。

答案 2 :(得分:0)

如果您不允许在课程作业中使用第三方库,那么您应该查看pixel-level collision detection with ActionScript 3.0上的这个优秀教程。

一般的想法是,您创建矢量图形的BitmapData副本,并使用该类的hitTest方法检查像素级别的碰撞。