2013-10-31 39 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); 
} 
}