Search code examples
arraysflashactionscript-3

Moving objects in array


I have an array which is filled with platforms that are supposed to move.

    var MovingPlatformArray:Array = new Array();
    
    for (var c:int = numChildren - 1; c >= 0; c--){
        var child3:DisplayObject = getChildAt(c);
        if (child3.name == "movingplatform"){
            MovingPlatformArray.push(child3);
        }
    }
    
    this.addEventListener(Event.ENTER_FRAME,ctrl_birdie);
    
    function ctrl_birdie(e:Event):void{

        for(var c in MovingPlatformArray){
                 
    MovingPlatform[c].y += speed;
                                
   if(MovingPlatformArray[c].hitTestPoint(birdie.x,birdie.y,true)){
        birdtelleryvertrager=0;
        birdtellery = 0;
        birdie.y-=14;
    }
      
        if(movingplatform.y <= 25){
                speed = 2;  
        }
      
        if(movingplatform.y >= 350){
             speed = -2;  
        }

   }

Right now I have 2 moving platforms in this array. But only one moves up and down. But they both register a touch with the birdie. Am I doing something wrong?


Solution

  • As far as i'm concerned, you have two options. use a for each, as adam smith suggested or use a for-loop as it was intended to be used :)

    for(var c:uint = 0; c < MovingPlatformArray.length; c++){...
    

    and btw: should "MovingPlatform[c].y += speed;" not be "MovingPlatformArray[c].y += speed;"?

    edit: looking at your code, i would also suggest you use MovingPlatformArray[c].hitTestObject(birdie) instead of MovingPlatformArray[c].hitTestPoint(birdie.x,birdie.y,true)