2013-10-31 18 views
0

我的问题是当我从列表中删除列表中的画图功能时。意外的文件处理错误从列表<>中删除并出现画笔错误

List<monster> Monster = new List<monster>(); 

//Initilize 
Monster.add(new Monster()); 

//Update 
if (Monster[0]. health == 0) 
{ 
    Monster.removeAt[0]; 
} 

//Draw 

If (Monster[0].health > 0) 
{ 
spriteBatch.Draw(Monster[0].texutre,Monster[0].pos,Color.White); 
} 

有没有办法只绘制取决于是否有一个列表<>里面的怪物?

回答

1

为您的绘图使用下面的代码片段。

if(Monster.Any()) 
    spriteBatch.Draw(Monster.First().texutre,Monster.First().pos,Color.White); 

这样,只有在有怪物时才会画出怪物。 Any()First()方法是LINQ,因此您必须在.cs文件的顶部指定using System.Linq;

0
if(Monster.Count > 0){ 
    // draw 
} 
1

尝试列表循环和添加/删除TDHE怪物

for(int i=0;i<Monster.Count(); i++) 
{ 
var m = Monster.ElementAt(i); 
//Update 
if (m.health == 0) 
{ 
    Monster.Remove(m) 
} 

//Draw 

If (m.health > 0) 
{ 
spriteBatch.Draw(m.texutre,m.pos,Color.White); 
} 
}