我正在开发一款名为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;
}
}
}
}
答案 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方法检查像素级别的碰撞。