0
为我在大学期间的第1学期任务开发一个简单的XNA游戏。不过,我已经为敌方精灵绘制了一圈墙。据我所知,所有敌方精灵都被添加到game1.cs类的列表中,但只有列表中的第一个被绘制。XNA循环绘制多个子画面不工作
此方法将敌人的实例添加到列表中。更新方法中,每秒产卵数正在增加。这会使敌人每秒产生一次,直到四次产卵。
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--;
}
}
}
Draw方法
foreach (NM_Enemy enemy in enemyList)
{
enemy.Draw(gameTime, spriteBatch);
}
更新方法
foreach (NM_Enemy enemy in enemyList)
{
enemy.Update(gameTime);
}
我会做什么:使用调试器。我想你正在使用Visual Studio,对吧?双击该行的左侧以设置中断点。我会在你的绘制方法中这样做,这样你就可以看到列表中的内容以及在特定时刻绘制哪一个。要开始调试,点击F5(或顶部的调试按钮)。 –