我正在用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中删除。