我正在开发基于 Asgamer 教程的游戏。我目前正在尝试让 5 个敌人立即生成。生成敌人的代码是:
var enemy:Stinger = new Stinger(stage, ourShip);
enemyList.push(enemy);
stage.addChild(enemy);
我知道我需要以某种方式循环这段代码 3 次,但是我所有使用循环的尝试都失败了,非常糟糕。应该注意的是,我刚刚进入动作脚本,所以此时我是一个完整的菜鸟,我需要非常基本的说明。
我正在开发基于 Asgamer 教程的游戏。我目前正在尝试让 5 个敌人立即生成。生成敌人的代码是:
var enemy:Stinger = new Stinger(stage, ourShip);
enemyList.push(enemy);
stage.addChild(enemy);
我知道我需要以某种方式循环这段代码 3 次,但是我所有使用循环的尝试都失败了,非常糟糕。应该注意的是,我刚刚进入动作脚本,所以此时我是一个完整的菜鸟,我需要非常基本的说明。
你需要一个循环。喜欢:
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/
你说你需要创造五个敌人,但是你说你需要循环三遍。除非你做一些不寻常的事情,否则循环 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.