0

青蛙

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

碰撞检测方法,hitTest 和 hitTestObject 替代方案

任何帮助,将不胜感激。

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;
            }
        }
    }
}
4

3 回答 3

2

我可以建议尝试一下奇妙的碰撞检测套件吗?

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

于 2012-04-27T13:18:58.327 回答
1

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

于 2012-05-08T12:22:41.933 回答
0

如果不允许您在课程作业中使用第三方库,您应该看看这个关于使用 ActionScript 3.0 进行像素级碰撞检测的优秀教程。

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

于 2012-04-27T20:43:01.757 回答