Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 用于定位敌人的AS3环路_Actionscript 3 - Fatal编程技术网

Actionscript 3 用于定位敌人的AS3环路

Actionscript 3 用于定位敌人的AS3环路,actionscript-3,Actionscript 3,我正在开发一款类似太空入侵者的游戏。到目前为止,我的敌人在一个for循环中繁殖,如下所示: for (var a=0; a<6; a++) { var bd:MovieClip = new bdenemy(); enemy1[a] = bd; addChild(enemy1[a]); enemy1[a].x = 50 + Math.random() * 700; enemy1[a].y = 50; } for(var a=0;a优化 首先,您应该

我正在开发一款类似太空入侵者的游戏。到目前为止,我的敌人在一个for循环中繁殖,如下所示:

for (var a=0; a<6; a++)
{ 
    var bd:MovieClip = new bdenemy();
    enemy1[a] = bd;
    addChild(enemy1[a]);
    enemy1[a].x = 50 + Math.random() * 700;
    enemy1[a].y = 50;
}
for(var a=0;a优化
首先,您应该在循环之外声明变量,以避免存储n个变量

答复 填充宽度 你可以将前一个x存储在一个变量中,并确保每个敌人之间的间隔最小。这是如果你想让你的屏幕边缘充满敌人,不管他们有多少

var bd:MovieClip;
var previousX:uint=0;
while (previousX + 150 < stage.stageWidth)
{ 
    bd = new bdenemy();
    enemy1.push(bd);
    addChild(bd);
    bd.x = previousX + 50 + Math.random() * 100;
    bd.y = 50;
}
var-bd:MovieClip;
var-previousX:uint=0;
同时(前X+150<阶段宽度)
{ 
bd=新的bdenemy();
灌肠1.推(bd);
addChild(bd);
bd.x=previousX+50+Math.random()*100;
bd.y=50;
}
50是两个敌人之间的最小距离

定额 如果你想要有6个敌人,在屏幕上整齐地排列,你可以为每个敌人引入一个位置范围

var bd:MovieClip;
const N_ENEMIES:uint = 6;
var span:uint = stage.stageWidth / N_ENEMIES;
for (var i:int=0; i < N_ENEMIES; i++)
{ 
    bd = new bdenemy();
    enemy1[i] = bd;
    addChild(bd);
    bd.x = i * span + Math.random() * span;
    bd.y = 50;
}
var-bd:MovieClip;
const N_敌人:uint=6;
变量范围:uint=stage.stageWidth/N\u;
for(变量i:int=0;i

在那里,每个敌人都会在其跨度内有一个随机位置。

非常感谢您,跨度的想法正是我在产卵时想到的。