我正在尝试制作一个简单的文本冒险/农业模拟器,但我是 JavaScript 的新手,而且我一直在尝试计划我的库存系统将如何工作。我遇到的主要问题是有两种主要类型的物品:食品/消耗品和工具/耐用品。食物将以固定的速度制造和消耗,而工具则需要购买,并且每次使用都会失去耐久度。
我能想到的最简单的解决方案是让每个食物的数量成为玩家的属性(player.meat、player.vegetable 等),因为数量是唯一改变的东西。工具有点复杂,所以我想我可以创建一个工具原型,然后给玩家一个可以存储他们所有工具的库存数组。然而,我想得越多,我就越意识到食物也需要成为原型(它还具有价格和营养价值等特性)。
我的头现在有点旋转,试图想出最有效的方法。我是否创建 2 个单独的原型,然后为玩家分别提供一个数组?我是否需要为数组创建一个原型,以便它可以跟踪项目类型和数量?当我想修改它时,我是否需要搜索数组中的每一项?这似乎不必要地复杂,但我真的想不出更简单的事情。谁能帮忙?
原文由 Adam 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您想创建一种简单的方法来查找项目并且您有一个唯一的、基于字符串的 ID(数字或名称),您可以使用对象作为哈希。
然后,当该玩家获得新工具时,您可以将该工具的实例添加到散列中:
然后当你想稍后检索它时,你可以做类似的事情:
使用下划线,您可以像数组一样轻松地迭代这些对象:
至于您放入这些数组中的对象,创建原型和构造函数可能会有用,但您也可以只剔除一个对象,除非您计划向它们添加很多方法。