0

FrogActionsScript 3碰撞

我正在开发一个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; 
      } 
     } 
    } 
} 
+0

什么**错**? – 2012-04-27 12:52:55

+0

@SamDeHaan基本上这段代码在一个正方形的对象周围增加了一个“边界框”,但是,我不想将我的影片剪辑的“空白”部分视为碰撞。 – 2012-04-27 12:55:36

+0

如果没有办法解决这个问题,我想我会在移动滑块内创建一个小电影剪辑,并将它放在青蛙舌头的末端,并用它代替整个青蛙。 – 2012-04-27 13:05:27

回答

1

在这种情况下,在青蛙动画片段内创建一个movieclip/sprite可能是最适合你的。 PixelPerfectCollision非常棒,非常实用(不过在较大的游戏中,价格昂贵),但碰撞会与任何一块青蛙相撞。你当然可以分开你的青蛙movieclip,只是在舌头上做PixelPerfectCollision。但是,如果这是课程,我会坚持在青蛙内部的某种显示对象上执行hitTest()。

2

我可以建议尝试一下梦幻般的Collision Detection Kit

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

+0

我会接受这个答案,因为它是最好的解决方案,尽管我正在做这个课程,不幸的是不能真正使用这个代码。 – 2012-04-27 13:34:33