저는 조카를위한 작은 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