我在陣列中有一些敵人,他們正在向左和向右移動。 簡單代碼,更新的敵人位置:移動物體之間的空間
// 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個循環,它現在完美的工作,很好的答案,謝謝。 –