【问题标题】:Java: How to Display My HashTable Inventory?Java:如何显示我的 HashTable 库存?
【发布时间】:2013-10-23 04:40:43
【问题描述】:

所以我在这个答案中做了一个清单: Android game rpg inventory system

我的问题是在屏幕上显示它的 gui 的最佳方式是什么。如果它有助于生病使用 Slick2D 添加即时消息。

【问题讨论】:

  • 实际上根本没有任何“最佳”方式。显示和创建 GUI 取决于各种因素。像是游戏还是?什么样的游戏,UI元素的数量等
  • @Vallentin 我在做一个沙盒/rpg 游戏,你建议什么样的库存?或者什么是最好的方法1?我也希望它有 50 个插槽
  • 就像我说的,没有任何“最好”的方法。这是一个品味问题。创建你想要的图形用户界面,如果你制作了一个用户界面并且你不喜欢它,那就改变它。然后,当您喜欢它时,请保留它。
  • @Vallentin 好的,我明白了,但我怎样才能创建一个库存,使其功能齐全并能够显示它。就像在哈希表中我能够放置项目 ID 和数量但我无法为它们分配一个插槽。无论如何,我可以做一个哈希表或地图之类的东西,定义 3 个对象,这样我也可以获得插槽 ID?
  • 如果你想将多个值“放入”一个键,创建一个class Item,在class Item 中你可以拥有所有你想要的变量。

标签: java hashtable lwjgl slick2d inventory


【解决方案1】:

我猜这就是你的意思,在评论中。

要向Map 中的一个键添加“多个”值,然后基本上只需创建自己的class Something 来存储您想要的所有值、对象等。

这是相当粗略的。虽然首先你会像我在 cmets 中所说的那样,在我们的例子中创建 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);

如果您不想要/不需要动态库存,那么您可以只使用 class Item 的数组,而不是使用 Map

Item[] inventory = new Item[10];

其中 10 是库存中物品的最大数量。

【讨论】:

  • 这应该可以,非常感谢。很抱歉耽误您的时间。
  • 不客气,花费多少时间并不重要!
猜你喜欢
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 2010-11-15
相关资源
最近更新 更多