首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3:在数组中存在一定数量的movieclips后,未检测到命中

AS3:在数组中存在一定数量的movieclips后,未检测到命中
EN

Stack Overflow用户
提问于 2012-12-27 22:11:39
回答 1查看 154关注 0票数 1

我意识到描述有点模糊,如果不给出代码我就不能解释这个问题!

基本上,我已经用AS3做了一个游戏,其中包含了一个角色,在平台上移动,风格级别,收集物品。这些项目都是同一实例(vinyl1a)的独立电影剪辑。

对级别中每个项目的引用存储在一个数组中,如下所示:

代码语言:javascript
复制
vinylArray=[mapbg.misc.vinyl1, mapbg.misc.vinyl2, mapbg.misc.vinyl3, mapbg.misc.vinyl4,...]

实际数组最多包含40个项目。碰撞检测是通过for循环完成的,如下所示:

代码语言:javascript
复制
var i:int;
for (i=0; i < maxVinyl; i++){ //iterate from 0 to maximum amount of vinyl
    if (woody.hitTestObject(vinylArray[i])) { //checks if woody collides with vinyl
        if (vinylArray[i].visible == true) { //checks if the vinyl has already been taken
        vinylArray[i].visible = false; //removes vinyl from map
        vinylCollected++; //adds to score
        updateScore();
        }
        }
    }

在这个场景中,“伍迪”就是角色。现在,问题是,我已经让它在10个‘黑胶’物品上工作得很好,涵盖了游戏的前3个关卡。现在我已经进入了第四级,我已经在地图中添加了更多的‘黑胶’电影剪辑(数组一直有40个值,但for循环只迭代到'maxVinyl‘,这是为每个单独的级别设置的),由于某种原因,碰撞检测就是不起作用。

没有错误消息,前10个电影片段仍然被正确检测,但11个以上的电影片段没有被正确检测到。

任何帮助都将不胜感激--如果你需要更多关于这个问题的信息,请联系我们!

干杯

编辑:忘了提一下,我在第一层测试了10多个黑胶,检测工作正常--情况是所有的黑胶电影剪辑都存储在每个级别的单独关键帧中,在一个名为misc的电影剪辑中。所以我可以在第一层做10+,但似乎就是这样..

EN

回答 1

Stack Overflow用户

发布于 2012-12-28 01:20:29

我可以想象发生的情况是maxVinyl没有设置为正确的数组长度。

一个简单的例子:

代码语言:javascript
复制
maxVinyl = vinylArray.length;

在此之前,for循环应该确保该数组中的所有对象都是所需的hitTest。

根据一些评论,听起来你的方法中还有一些其他问题,可能是更大的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14056017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档