找到阵列的两个实例是否位于相同位置

时间:2014-05-09 16:02:15

标签: actionscript-3

我试图找出一种方法让我的游戏能够识别这个数组的两个实例与另一个实例具有相同的x或y位置,如果是这样的话,可以随机移动其中一个实例的位置:

for(i=0;i<8;i++) {
        PlatformInstance[i] =new Platform();
     PlatformInstance[i].y= Math.random()*900;
     PlatformInstance[i].x= Math.random() *1500;
     stage.addChild(PlatformInstance[i]);

 }

我遇到的问题是我尝试的代码检测到一个平台实例与SAME平台实例具有相同的位置,并且会不断地重新定位该位置。 有没有办法区分不同的实例?

非常感谢。

修改

我能想到的唯一代码是在循环中运行if语句以查看是否

If (PlatformInstance[i].y == PlatformInstance[i].y)

显然这不会起作用并且想到它我知道它不会,但我想知道是否有办法:

 If (Platforminstance[i].y == "other" Platforminstance[i].y

或其他一些相关的词语

1 个答案:

答案 0 :(得分:-1)

您似乎没有清楚地了解数组是如何工作的,我建议您研究一下。这样的事情应该有效

   i=0;
   j=0;
   while( i < PlatformInstance.length -1) {
      j++;
      if (j == PlatformInstance.length) {
         i++;
         j=i+1;
      }

      if( (Math.abs(PlatformInstance[i].x - PlatformInstance[j].x) < platformWidth)
      || (Math.abs(PlatformInstance[i].y - PlatformInstance[j].y) < platformHeight) ) {

         PlatformInstance[j].y= Math.random()*900;
         PlatformInstance[j].x= Math.random() *1500;
         //Now you'll have start checking at the beginning again since you moved one
         i=0;
         j=0;
         continue;
      }
   }

同样如前所述,PlatformInstance不是数组的好名称。只有类名称应以大写字母开头。并且不应将一组平台称为“实例”。我建议将其更改为platforms