所以一些背景信息,我是编程新手,还在学习,所以我为我的小错误道歉。我正在制作自己的基于文本的游戏,只是为了进一步练习等。
以下是 dropbox 上所有内容的链接以获取更多上下文: https ://www.dropbox.com/sh/uxy7vafzt3fwikf/B-FQ3VXfsR
我目前正在尝试为我的游戏实现战斗系统,并且遇到了战斗序列在需要时没有结束的问题。“战斗序列”是一个 while 循环,如下所示:
public void startCombat()
{
inCombat = true;
while(inCombat != false)// && herohealth > 0 && monsterhealth > 0)
{
checkAlive();
heroHitMonster();
checkAlive();
monsterHitHero();
}
attackinghero.setHeroHealth(herohealth);
attackedmonster.setMonsterHealth(monsterhealth);
}
其中 checkAlive() 方法如下:
public void checkAlive()
{
if(herohealth <= 0)
{
System.out.println("You have died.");
attackinghero.clearInventory();
inCombat = false;
}
else if(monsterhealth <= 0)
{
System.out.println("You have killed the "+attackedmonster.getmonsterName()+"!");
inCombat = false;
combatlocation.removeMonster(attackedmonster.getmonsterName());
}
else
{
//
}
}
我试图让它在“英雄”或“怪物”生命值变为 <= 0 时结束战斗序列,但是它目前正在完成 while 循环,因此即使他杀死了英雄也会产生被击中的结果怪物在他的第一击。
这就是当前正在“打印到屏幕”的内容
老鼠失去 5 生命值!你杀了老鼠!
英雄失去 1 点生命值!
非常感谢任何帮助,在此先感谢。