我正在为一个侄子制作一个小型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