我正在用Java创建游戏,目前正在实现玩家所拥有的生命。一开始它们有5个(在屏幕上显示为青蛙,每只青蛙= 1条生命,失去一条生命=从屏幕上移走一只青蛙)。

我创建了一个名为Life的类,该类吸收了生命及其x和y位置的图像。如果玩家死亡,应该将青蛙从屏幕上移开。

我设法通过创建5个新的Life对象并给它们指定不同的名称(例如life1,life2等),然后在对象实例化过程中使用其给定名称将其删除来做到这一点,但是它效率很低,因为我只是将if语句链接在一起。

我正在考虑给构造函数中的每个新青蛙一个ID,从1到5,然后有一个while循环,如果玩家死亡(这是条件),它将删除生命,而计数器从5减为1,但是,要使其正常工作,我将需要某种方式获取单独的Life对象,因此(使用伪代码)如下所示:

numOfLives = 5;
while (i < numOfLives)
{
  life = Life.getLifeFromID(numOfLives);
  background.removeLife(life);
  numOfLives--;
}


那么有可能创建这样的方法吗? (用伪代码编写,我不完全确定您将如何在实际代码中指定它)

public Life getLifeFromID(int id)
{
     return specific Life object based on ID from argument
}


因此,如果numOfLives = 4,则将为行life = Life.getLifeFromID(numOfLives);分配Life对象4,然后可以在下一行中将其删除。

谢谢!

最佳答案

我认为您可以将Life实例放入列表,然后在失去生命时,只需从具有特定索引的List中删除。

10-08 09:34