2

我为战士和子弹使用数组

package {
    import flash.display.MovieClip;
    import flash.events.Event;

public class level extends MovieClip {

    var fighters:Array;
    var bullets:Array;

    public function level() {
        trace("level");
        addEventListener(Event.ENTER_FRAME, loop);
        bullets=new Array();
        fighters=new Array();
    }

    function loop(e:Event) {
        if(numChildren<3) {
            var f=new fighter();
            addChild(f);
            // fighter spaWNS RANDOMLY
            f.x=Math.random()*stage.stageWidth;
            f.y=Math.random()*stage.stageHeight;
            f.rotation=Math.random()*360;
            fighters.push(f);
        }

        for(var bcount=bullets.length-1; bcount>=0; bcount--) {
            bullets[bcount].update();
            if(bullets[bcount].parent==null) {
                bullets.splice(bcount,1);
                bcount--;
            }
        }

        for(var count=fighters.length-1; count>=0; count--) {

//**** error is here
//**** there is a mismatch in the arguments with the fighter

            fighters[count].update();

            for(bcount=bullets.length-1; bcount>=0; bcount--) {
                if(fighters[count].hitTestObject(bullets[bcount])) {
                    fighters[count].health--;
                    removeChild(bullets[bcount]);
                    bullets.splice(bcount,1);
                }
            }

          if(fighters[count].health<=0) {
              removeChild(fighters[count]);
              fighters.splice(count,1);
            }
        }
    }
}

}

4

1 回答 1

0

错误 #1063 表示您没有传递所需的参数或传递的参数超出预期。可能有关于您未发布的错误的其他信息可能会有所帮助,并且很可能看起来像:

ArgumentError: 错误 #1063: •class 和 function• 上的参数计数不匹配。预期 1,得到 0

检查 fighter() 对象的 update() 函数,看看它是否需要一个参数。

于 2012-12-20T19:27:00.850 回答