首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏库存系统结构?

游戏库存系统结构?
EN

Stack Overflow用户
提问于 2016-09-29 23:37:34
回答 1查看 1.4K关注 0票数 1

我正在为我的小RPG游戏的库存系统工作。这是多人游戏的本意。到目前为止,我有一个工作安排,但我非常不满意,并希望从新开始。我主要讲的是模型,而不是观点。

  • 它的目的是用户有几个清单。不同的存货是饮料,另一种是一些特殊物品,只是垃圾赃物等等。
  • 库存最多可容纳n个项目,以槽表示。x,y不是固定的,用户可以根据其设备进行更改。
  • 物品可以堆叠,也可以不堆叠。如果它不能堆放,它就可以装备起来。
  • 适用于不同的设备(移动/桌面)

我的问题主要是它变得过于依赖对方。我有一个项目和一个ItemStack类。如果项目是可堆叠的,则项目将被添加到带有金额的项目堆栈中。这两者都是从AbstractItem继承而来的--尽管Item堆栈不是一个项目,但我当时不知道如何添加它。这导致我不得不在抽象类/interface中添加方法才能正确地处理这两个类。就像向抽象类添加一个currentCount()一样,抽象类只需要ItemStack,但是项目也有它,尽管它永远不需要它。此外,库存持有InventorySlot,它只有一个ItemStack或项目和一个变量的位置,该槽。不同的库存本可以通过对Itemtype ( enum)的简单检查来实现。

视图只需查找库存。检查非空槽并读取Item类中的纹理或ItemStack ~中项中的纹理

我就是这么想的,但这看起来很糟糕。

您如何建议构建这样一个简单、但易于升级和可维护的系统?更好的方法是区分每个枚举的Itemtype(以及清单),甚至只是为其创建一个类,还是为诸如消耗品、设备等之类的东西创建一个接口?

EN

回答 1

Stack Overflow用户

发布于 2016-09-29 23:48:52

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

我可以建议:

您可以在SQLite {item1:{item1:x,attr:x,atk:5,agi:-3,lbl:设备},...etc,...etc }中存储所有项目

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

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39781605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档