如果这是不正确的地方,请道歉;我是一个非常新的爱好者程序员。
我目前在业余时间从事一个小型自上而下的射击游戏,只不过是一个简单的自我驱动项目来学习和娱乐。我使用 C# 和 XNA 作为框架,我试图通过选择 gameObjects 添加到库存中来为游戏添加一些变化。
目前我有一个List<GamePlayObjects>
“WorldObjects”,我有一个ObjectManager
类来管理所有对象的更新、碰撞和绘制功能,我对我目前所拥有的感到满意。在与 GamePlayObject 碰撞时(例如小行星爆炸后的一小块铁矿石),它会从主列表“WorldObjects”中删除该对象并将其添加到另一个名为List<GamePlayObjects> inventory
现在我要做的是在屏幕上绘制一个小区域,其中包含项目精灵和我收集的该项目的总数。我对绘图方面并不真正感兴趣,更多的是从库存中提取数据。
我已经阅读了几个线程,可能HashSet
用于从我的库存中获取唯一项目,然后从 中提取每个项目的总数HashSet
,但我现在很难理解这一点,因此我访问这里寻求帮助。
我的代码示例以及我试图实现的目标。
我有一个我所有 WorldObjects 的列表,每个世界对象都是一个类,其中包含与该 worlObject 相关的所有内容。
private List<GamePlayObject> gameObjects = new List<GamePlayObject>();
当一个对象,让我们说“玩家”与另一个对象“铁矿石”发生碰撞时,我从以下位置移除 IronOre 世界对象:
private List<GamePlayObject> gameObjects = new List<GamePlayObject>();
并将其添加到一个名为 Inventory 的新列表中
private List<GamePlayObject> playerInventory = new List<GamePlayObject>();
现在,随着越来越多的对象被收集并添加到我的库存中,我想提取信息并将有关我的库存的信息显示到屏幕上。
例如,在我的屏幕右侧,我想显示我在我的库存中拥有的项目列表以及每个项目的总量,这些数据应该从我的库存列表中获取。
所以它可能看起来像这样:
Iron Ore x 3
Steel x 10
Gold x 18
Uranium x 12