我正在爲一個侄子製作一個小型RPG遊戲,並且我決定將一些任務放入混合中,而不僅僅是純粹的戰鬥骷髏。我建立了一個工作庫存,可以添加,移除和使用物料,但是庫存中的物料只會在達到限制(25個物料)之前填滿,而不會堆疊。使用for循環控制列表項目C#
我彌補這個用下面的代碼:
finished = false;
if(Backpack[bSlot].ITEM.ItemName == Item.ItemName){
if(!finished){
Backpack[bSlot].ITEM.ItemCount += 1;
finished = true;
}
}
正如你可以看到只檢查,如果該項目我們正在增加(項目)是一樣的一個我們在插槽中。
但是,只有當物品完全相同時,其他物品纔會被丟棄並且他們的遊戲物體被毀壞。
這裏是我將項目添加到揹包功能:
public void AddItem(ItemDefine Item){
bool finished = false;
for (int bSlot = 0; bSlot < Backpack.Count; bSlot++) {
//if slot is empty, add item
if(Backpack[bSlot].ITEM.ItemName == null){
if(!finished){
Backpack[bSlot].ITEM = Item;
finished = true;
}
}
//If item is the same as the one in our current slot
if(Backpack[bSlot].ITEM.ItemName == Item.ItemName){
if(!finished){
Backpack[bSlot].ITEM.ItemCount += 1;
finished = true;
}
}
//if the item is NOT the same as the one in our current slot
if(Backpack[bSlot].ITEM.ItemName != Item.ItemName){
if(!finished){
Backpack[bSlot].ITEM = Item;
finished = true;
}
}
}
}
我現在的問題是,我不能得到它來檢查,如果該項目是一樣的,如果是加量(ItemCount中)減1,如果它不是迭代到下一個列表位置並在那裏添加項目。
想法?
這幫了一把,我回去重新思考我的想法。嘗試使用if-else再次設法解決它,但不需要一個字典,因爲一個項目有一個計數器(即ITEM.ItemCount)從默認設置爲1(除非另有說明),並增加了使用碼。 感謝您的迴應和幫助! – 10074405 2014-10-06 12:15:41