-1

我正在开发基于 Asgamer 教程的游戏。我目前正在尝试让 5 个敌人立即生成。生成敌人的代码是:

var enemy:Stinger = new Stinger(stage, ourShip);
enemyList.push(enemy);
stage.addChild(enemy);

我知道我需要以某种方式循环这段代码 3 次,但是我所有使用循环的尝试都失败了,非常糟糕。应该注意的是,我刚刚进入动作脚本,所以此时我是一个完整的菜鸟,我需要非常基本的说明。

4

2 回答 2

1

你需要一个循环。喜欢:

for (var i:Number=0; i<3, i++){
     var enemy:Stinger = new Stinger(stage, ourShip);
     enemyList.push(enemy);
     stage.addChild(enemy);
}

有关 for 循环和迭代的更多信息,请访问:http ://www.republicofcode.com/tutorials/flash/as3loops/

于 2013-03-19T12:04:08.430 回答
0

你说你需要创造五个敌人,但是你说你需要循环三遍。除非你做一些不寻常的事情,否则循环 3 次会得到 3 个敌人,循环 5 次会得到 5 个敌人。

var enemy:Stinger;
for (var i:int = 0; i < 5; i++)
{
    enemy = new Stinger(stage, ourShip);
    enemyList.push(enemy);
    stage.addChild(enemy);
}

敌人的声明被排除在循环之外,以防止不断地破坏和重新创建变量。听起来你还在学习循环,所以这基本上是正在发生的事情:

var enemy:Stinger;
var i:int = 0;

enemy = new Stinger(stage, ourShip); // i = 0, i < 5
enemyList.push(enemy);
stage.addChild(enemy);
i++;

enemy = new Stinger(stage, ourShip); // i = 1, i < 5
enemyList.push(enemy);
stage.addChild(enemy);
i++;

enemy = new Stinger(stage, ourShip); // i = 2, i < 5
enemyList.push(enemy);
stage.addChild(enemy);
i++;

enemy = new Stinger(stage, ourShip); // i = 3, i < 5
enemyList.push(enemy);
stage.addChild(enemy);
i++;

enemy = new Stinger(stage, ourShip); // i = 4, i < 5
enemyList.push(enemy);
stage.addChild(enemy);
i++;

// i = 5; since i is no longer less than 5, stop here.
于 2013-03-19T12:55:55.723 回答