Actionscript 3 用于定位敌人的AS3环路
我正在开发一款类似太空入侵者的游戏。到目前为止,我的敌人在一个for循环中繁殖,如下所示: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 (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
在那里,每个敌人都会在其跨度内有一个随机位置。非常感谢您,跨度的想法正是我在产卵时想到的。