为我在大学的第一学期作业开发一个简单的 XNA 游戏。然而,我在敌人精灵的绘制循环中遇到了一些障碍。据我所知,所有的敌人精灵都被添加到 game1.cs 类的列表中,但只有列表中的第一个被绘制。
此方法将敌人的实例添加到列表中。Spawn 在更新方法中每秒递增。这使得敌人每秒按顺序生成,直到生成了四个。
public void LoadEnemies()
{
int randX = rand.Next(0, 1000);
int randY = rand.Next(0, 500);
if (spawn >= 1)
{
spawn = 0;
if (enemyList.Count() < 4)
{
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp1"), new Vector2(randX, randY)));
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp2"), new Vector2(randX, randY)));
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp3"), new Vector2(randX, randY)));
enemyList.Add(new NM_Enemy(Content.Load<Texture2D>("Wisp4"), new Vector2(randX, randY)));
}
}
//Checks if enemies in the list have left the level bounds
for (int i = 0; i < enemyList.Count; i++)
{
if (!enemyList[i].isVisible)
{
enemyList.RemoveAt(i);
i--;
}
}
}
绘制方法
foreach (NM_Enemy enemy in enemyList)
{
enemy.Draw(gameTime, spriteBatch);
}
更新方法
foreach (NM_Enemy enemy in enemyList)
{
enemy.Update(gameTime);
}