2013-10-23 3 views
0

그래서 나는이 대답처럼 인벤토리를 만든 : 가장 좋은 방법은 화면에 그것의 GUI를 표시하기 위해 무슨 Android game rpg inventory system자바 : 내 HashTable 인벤토리를 표시하는 방법?

내 질문입니다. Slick2D를 사용하여 병을 추가하는 데 도움이되는 경우.

+0

"최상의"방법이 전혀 없습니다. GUI를 표시하고 생성하는 것은 다양한 일에 달려 있습니다. 마치 게임인가요? 어떤 종류의 게임, UI 요소의 양, 등 – Vallentin

+0

@ Vallentin 임 샌드 박스/RPG 게임을하고있는 당신은 어떤 종류의 인벤토리를 제안합니까? 또는 1을하는 가장 좋은 방법은 무엇입니까? 또한 나는 그것이 50 슬롯을 가지고 싶습니다 – JeremiasK

+0

내가 말했듯이, "최고의"방법은 없습니다. 그것은 맛의 문제입니다. UI를 만들고 그것을 좋아하지 않는다면 GUI를 어떻게 보이게 만드십시오. 그렇다면 당신이 그것을 좋아한다면, 그것을 지키십시오. – Vallentin

답변

0

나는 이것이 당신이 코멘트에서 의미하는 바를 추측합니다.

Map에있는 하나의 키에 "다중"값을 추가하려면 기본적으로 자신이 원하는 모든 값, 개체 등을 저장하기 위해 자신의 class Something을 만듭니다.

이것은 매우 개략적입니다. 처음에 당신이 우리의 경우에 class Something을 만들 것이라고 말했듯이 나는이 코멘트에서 말한 것처럼 class Item입니다.

public class Item 
{ 
    public static enum ItemType { FOOD, WEAPON, TOOL, ARMOR; } 

    public ItemType type; 
    public int weight; 

    public Item() { 

    } 

    public Item(ItemType type, int weight) { 
     this.type = type; 
     this.weight = weight; 
    } 
} 

그럼 당신은 작성하고 Map 당신이 다음을 수행 할 항목을 추가 할 때 후. 물론 Map 키는 Integer이므로 인벤토리 색인이되므로 사용중인 느낌이 들게됩니다.

HashMap<Integer, Item> inventory = new HashMap<Integer, Item>(); 

Item i1 = new Item(ItemType.FOOD, 10); 
Item i2 = new Item(ItemType.WEAPON, 20); 

inventory.put(0, i1); 
inventory.put(1, i2); 

당신이/원하지 않는 경우

는 대신 Map을 사용하는 당신은 단지 class Item의 배열을 사용할 수, 동적 재고가 필요합니다.

Item[] inventory = new Item[10]; 

여기서 10은 인벤토리의 최대 항목입니다.

+0

정말 고마워요. 그리고 시간을 내서 미안해. – JeremiasK

+0

환영합니다. 소요 시간은 중요하지 않습니다! – Vallentin

관련 문제