【发布时间】:2014-10-06 02:10:30
【问题描述】:
我正在为一个侄子开发一款小型 RPG 游戏,我决定将一些任务加入其中,而不仅仅是单纯地与骷髅战斗。我建立了一个可用的库存,因为我可以添加、删除和使用物品,但是库存中的物品将被填满,直到达到限制(25 件)而无需堆叠。
我用以下代码解决了这个问题:
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,以及是否只是迭代到下一个列表位置并添加项目在那里。
想法?
【问题讨论】: