下面是一個im工作的項目的代碼,其中敵人在屏幕底部來回移動。在XNA 4.0中新加載的精靈不能正常工作
class enemy1
{
Texture2D texture;
public Vector2 position;
bool isAlive = false;
Random rand;
int whichSide;
public enemy1(Texture2D texture, Vector2 position)
{
this.texture = texture;
this.position = position;
}
public void Update()
{
if (isAlive)
{
if (whichSide == 1)
{
position.X += 4;
if (position.X > 1000 + texture.Width)
isAlive = false;
}
if (whichSide == 2)
{
position.X -= 4;
if (position.X < 0)
isAlive = false;
}
}
else
{
rand = new Random();
whichSide = rand.Next(1, 3);
SetInStartPosition();
}
}
private void SetInStartPosition()
{
isAlive = true;
if (whichSide == 1)
position = new Vector2(0 - texture.Width, 563 - texture.Height);
if (whichSide == 2)
position = new Vector2(1000 + texture.Width, 563 - texture.Height);
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, Color.White);
}
}
現在我希望這是幾個敵人來回,但他們開始在歧位置,所以它看起來像有一些敵人在屏幕底部來回。我已經設法在屏幕上畫出其他幾個敵人,除非他們不像第一個敵人。他們只是屏幕上沒有任何移動的圖片。所以現在我所擁有的就是英雄在屏幕的底部移動,並且有一個敵人在屏幕的頂部,另外5個敵人坐在屏幕的頂部什麼都不做。我如何輕易地從一個具有相同行爲的類中隨時添加一個新的精靈,同時又不會讓十億個變量存儲它們?
這裏沒有足夠的信息。你的'Update'和'Draw'方法如何繪製精靈? –
您以同樣的方式*另一個*移動。你可能有一些代碼讓它移動,將它應用到你在數組中獲得的其他精靈。 (順便說一下,有一個** ** **) – user1306322
@安德魯羅素我已經更新了它,希望它不像以前那麼模糊。 –