Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 行动脚本3碰撞_Actionscript 3_Flash_Actionscript_Collision Detection_Collision - Fatal编程技术网

Actionscript 3 行动脚本3碰撞

Actionscript 3 行动脚本3碰撞,actionscript-3,flash,actionscript,collision-detection,collision,Actionscript 3,Flash,Actionscript,Collision Detection,Collision,我正在开发一个名为青蛙的flash游戏,目前我的青蛙和苍蝇碰撞代码并没有按预期工作。我希望它的工作原理与下面链接的方法类似(最后一个示例) 任何帮助都将不胜感激 function hitTargetFunction():void { for (i = 0; i < insectsMC.length; i++) { for (j = 0; j < insectsMC[i].length; j++) { if (frogMC.hitTes

我正在开发一个名为青蛙的flash游戏,目前我的青蛙和苍蝇碰撞代码并没有按预期工作。我希望它的工作原理与下面链接的方法类似(最后一个示例)

任何帮助都将不胜感激

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;
            }
        }
    }
}
函数hitTargetFunction():void{
对于(i=0;i
我可以建议你试试神奇的吗


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

我可以建议您尝试一下奇妙的吗


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

如果您的课程作业不允许使用第三方库,您应该看看这本优秀的教程


总体思路是创建矢量图形的位图数据副本,并使用该类的hitTest方法在像素级别检查冲突

如果你的课程作业不允许使用第三方图书馆,那么你应该看看这本优秀的教程


总体思路是创建矢量图形的位图数据副本,并使用该类的hitTest方法在像素级别检查冲突

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

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

@SamDeHaan基本上这段代码在对象周围添加了一个“边界框”,它是一个正方形,我不想让我的电影剪辑中的“空”部分算作碰撞。如果没有办法解决这个问题,我想我会在moveiclip中创建一个小电影剪辑,并将其放在青蛙舌头的末端,然后使用它而不是整个青蛙。@SamDeHaan基本上这段代码在正方形的对象周围添加了一个“边界框”,我不想让我的电影剪辑中的“空”部分算作碰撞。如果没有办法,我想我会在moveiclip中创建一个小电影剪辑,并将其放在青蛙舌头的末端,然后使用它而不是整个青蛙。我会接受这个答案,因为这是最好的解决方案,虽然我这样做是为了课程作业,不幸的是不能真正使用代码。我会接受这个答案,因为这是最好的解决方案,尽管我这样做是为了课程作业,不幸的是不能真正使用代码。