游戏库存系统结构?

时间:2016-09-29 23:37:35

标签: java android libgdx

我正在为我的小RPG游戏制作一个库存系统。它适用于多人游戏。 到目前为止,我有一个工作安装程序,但我对它非常不满意,并希望从新的开始。我主要是谈论模型而不是视图。

  • 用户有多个库存。不同的库存用于饮料,另一些用于特殊物品,只是垃圾赃物等。

  • 广告资源最多可容纳n个项目,以老虎机为单位。 x,y不是固定的,用户可以根据其设备进行更改。

  • 物品可以堆叠或不堆叠。如果它不可堆叠,可以装备。

  • 适用于不同的设备(移动/桌面)

我的问题主要是它变得过于依赖彼此。我有一个Item和一个ItemStack类。如果Item是可堆叠的,则Item将被添加到具有金额的itemstack中。两者都继承自AbstractItem - 虽然Itemstack不是Item,但我不知道如何添加它。这导致我必须在抽象类/接口中添加方法才能正确使用这两个类。就像将一个currentCount()添加到抽象类中一样,这只是ItemStack所需要的,但Item也有它,尽管它永远不需要它。此外,库存持有InventorySlot,它只有一个ItemStack或Item以及该Slot位置的变量。 可以通过简单检查Itemtype(枚举)来实现不同的库存。

View只会查找库存。检查非空插槽并读取Item类中的纹理 - 或ItemStack中项目中的纹理〜

currently

这是我怎么想的,但似乎很糟糕。

您如何建议构建这样一个简单易用的可升级和可维护系统?是否更好地区分每个枚举的物品类型(以及库存),或者甚至只是为它制作一个自己的类,或者为消费品,装备等物品制作界面?

1 个答案:

答案 0 :(得分:0)

这是一个难题,因为它取决于您的游戏或库存设计

我可以建议:

您可以将所有项目存储为SQLite中的json [{item1:{name:x,attr:x,atk:5,agi:-3,lbl:equipment}, ...等等, ......等等}]

你可以为每个项目提供一个更灵活的结构,即使这样你就可以使用GSON将每个json对象转换为某个java对象,如果你不想让自己复杂化,那么你就有了有限数量的插槽或者可能是一个大的库存网格,您可以在那里放置所有不同的项目