所以一些背景信息,我是编程新手,仍在学习,所以我为我犯的微不足道的错误道歉。我正在制作自己的基于文本的游戏只是为了进一步练习等。
以下是 Dropbox 上所有内容的链接,以了解更多背景信息:https://www.dropbox.com/sh/uxy7vafzt3fwikf/B-FQ3VXfsR 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
{
//
}
}
我试图让它在“英雄”或“怪物”生命值
这就是当前正在“打印到屏幕上”的内容
老鼠失去 5 点生命值!
你已经杀了老鼠了!
英雄失去 1 点生命值!
非常感谢任何帮助,提前致谢。
checkAlive 不应该是 void 它应该是布尔值并且应该返回 inCombat,并且在你的函数 startCombat 中你应该做 inCombat=checkAlive();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)