我在阵列中有一些敌人,他们正在向左和向右移动。 简单代码,更新的敌人位置:移动物体之间的空间
// when the game starts, moveRight is true
var moveRight:Boolean = true;
for (var i:int = 0; i < enemies.length; i++)
{
if(moveRight)
{
// they are moving right
enemies[i].vx = 2;
}
else
{
// they are moving left
enemies[i].vx = -2;
}
// limit movement
if (enemies[i].x >= 550)
{
moveRight = false;
}
else if (enemies[i].x <= 50)
{
moveRight = true;
}
// move enemies
enemies[i].x += enemies[i].vx;
}
问题:每次当敌人击中左boudary(X < = 50),空间1和2之间的敌人是越来越大。林不擅长的英文解释的事情,所以我在这里上传非常基本的.swf例如:
http://www.fastswf.com/GXKix5s
刚才看的是与左侧的敌人发生。
我可以通过添加代码的一列(以下新的密码)解决这个问题 内if-else语句:
if (enemies[i].x >= 550)
{
moveRight = false;
}
else if (enemies[i].x <= 50)
{
moveRight = true;
// NEW CODE
enemies[i].x += 2;
}
它具有多个行工作,甚至,你可以在这里看到
http://www.fastswf.com/icsom6A
所以问题是什么导致问题? 为什么每次从左向右改变方向时,敌人之间的距离会越来越大? 如果我向后循环troguh数组,我在右侧有问题,没有离开。
我给答案添加了一个例子 – imcg
是的,我需要2个循环,它现在完美的工作,很好的答案,谢谢。 –