我使用ArrayList作为我的“清单”。我在寻找一种方法来添加相同项目的多个而不在“库存”中占一席之地时遇到了麻烦。例如:我在库存中添加了一种药水。现在,我添加了另一种药水,但是这次没有向库存中添加另一种药水,而是应该显示我有:药水x
2,而只占用ArrayList中的一个位置。我提出了一些解决方案,但我觉得它们似乎是不好的做法。我尝试的一种解决方案是向项目本身添加AMOUNT变量并对其进行递增。帮助我找到更好的解决方案?
编辑:好的,请忽略以上内容。我已经得到了很好的答案,但是令我惊讶的是,几乎没有关于角色扮演游戏清单系统的教程。我已经做了很多Google搜索,找不到任何好的示例/教程/源代码。如果有人能指出一些好的示例/教程/源代码(与什么语言无关,而是首选的Java,甚至是c
/ c ++),我将不胜感激。哦,还有关于这个主题的任何书籍。
解决此问题的常用方法(使用标准API)是使用Map<Item, Integer>
将商品映射到库存中此类商品数量的a。
要 获取 某个项目 的“金额” ,您只需致电get
:
inventory.get(item)
要将 某些内容添加 到清单中
if (!inventory.containsKey(item))
inventory.put(item, 0);
inventory.put(item, inventory.get(item) + 1);
要从清单中 删除某些内容 ,您可以例如
if (!inventory.containsKey(item))
throw new InventoryException("Can't remove something you don't have");
inventory.put(item, inventory.get(item) - 1);
if (inventory.get(item) == 0)
inventory.remove(item);
如果您在许多地方这样做可能会造成混乱,因此我建议您将这些方法封装在一个Inventory
类中。
祝好运!
利用 cocos2d 制作的一个RPG回合制战斗游戏,包括人物在有障碍物的瓷砖地图中走动、回合制战斗场面,技能效果、抽奖效果。 作者说:(使用本网站代码里面的图片素材,望原作者见谅),算是自己琢磨一个月的总结吧,希望对像我一样的新手有点帮助,高手勿喷。 [Code4App.com]
我正在使用LibGdx的java游戏,我需要你的帮助。 说明:箭头键有一个问题。让我先解释一下我的代码是如何工作的。所以在我的更新方法中,我检查是否按下了键。如果是的话,我来处理。问题是我的代码一个接一个地检查。因此,它检查的第一个箭头键优先于所有其他箭头键,因为如果按下它,它将首先被调用。前任: 顺便说一下,我的游戏是瓷砖基地。当玩家移动完1个图块后,它会再次检查箭头键输入,看看下一步需要朝哪个
我在谷歌游戏商店里有一个Android游戏,是用统一2018.4.2f1和IL2CPP而不是单声道构建的。 使用的运行时版本。Net 3.5,我的目标是ARMv7和ARM64,并将其构建为Google App Bundle(*. aab)。 自从上次更新以来,我的游戏崩溃率每天都在增加,90%的崩溃与所有报告的有关设备使用Android 9. 我无法找到我的游戏的哪个部分产生了这个崩溃。我在我的游
本文向大家介绍python实现的简单RPG游戏流程实例,包括了python实现的简单RPG游戏流程实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现的简单RPG游戏流程。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。
问题内容: 我正在用Java编写游戏,现在是Swing + JOGL-一个带有GLCanvas的JFrame。 我使用etc.事件()处理输入,但似乎无法正常工作: 当我同时按下3个以上的键时,它们无法正确注册 -显然这是键盘的错误,我必须找到替代的控制方案。 窗口丢失后,重新获得焦点,输入完全停止工作… 我究竟做错了什么? 有没有更好的方法来处理Java中的键盘输入? (除非我别无选择,否则我不
我对java完全陌生,我想在Java中创建一个单人棋盘游戏。 我已经有很多定义游戏的类,但是对于我的问题,我将把问题限制在为我的棋盘游戏创建GUI板 我非常具体的问题是,基于以下代码: 如何在棋盘游戏中移动玩家?(类播放器存在) 提前感谢您的得体回答。因为我对java非常陌生,请清楚地解释您的答案。 这是以下代码的输出: