我正在为学校项目编写一个简单的游戏。它就像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;
}
}
但它不起作用......我只得到一个敌人而不再......你能帮助我吗?谢谢!
答案 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;