AS3击球比赛

时间:2014-11-04 00:19:22

标签: actionscript-3 starling-framework

我正在为学校项目编写一个简单的游戏。它就像Space Invaders,但我不能在时间插入多个敌人......它只是向我显示了一个敌人,现在我收到的错误是“在字符串上找不到属性x并且没有默认值。”

我试图创建一个矢量来创建多个敌人,但它根本不起作用......

这是我的代码:

敌人的变量:

private var bird_1:MovieClip;
    private var InimigoList:Vector.<MovieClip> = new Vector.<MovieClip>();
    private var NumInimigos:int = 10;
    private var birdVelo:Number = 3;

然后:

bird_1 = new MovieClip( textureAtlas.getTextures("bird"), 5 );
        bird_1.smoothing = "none";
        Starling.juggler.add(bird_1);
        bird_1.visible = false;
        addChild(bird_1);

        for (var i:uint = 0; i < NumInimigos; i++) {
        var Enemy:MovieClip = new MovieClip (textureAtlas.getTextures("bird"),12);
        Enemy.smoothing = "none";
        Enemy.visible = false;
        Enemy.x = i * 50 + Enemy.width;
        InimigoList.push(Enemy);
        Starling.juggler.add(Enemy);
        addChild(Enemy);

现在我想让多个敌人出现在舞台上。然后我就这样做了:

for (var i:uint = 0; i < NumInimigos; i++) {
            var newEnemy = InimigoList[i];
            newEnemy += birdVelo;
            if (newEnemy.x > stage.stageWidth){
            newEnemy.x = 0;
            }
            }

但它不起作用......我只得到一个敌人而不再......你能帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你是否在制造隐形敌人?

Enemy.visible = false;

你是否将所有敌人放在舞台的同一区域?

for (var i:uint = 0; i < NumInimigos; i++) {
            var newEnemy = InimigoList[i];
            newEnemy += birdVelo;
            if (newEnemy.x > stage.stageWidth){
            newEnemy.x = 0;
            }
            }

这是做什么的?

newEnemy += birdVelo;

您是否尝试直接从其阵列位置引用对象?

InimigoList[i].x = newx;
InimigoList[i].y = mewy;