[英]Java Game: Shooting multiple players at same time
我正在开发一款玩家可以射击子弹的游戏。 我正在遍历游戏中的活跃玩家列表,并在玩家靠近时向他们射击。 除了两个或更多玩家同时互相射击的情况外,它主要起作用。
问题:
当两个玩家互相射击(同时发射相同数量的子弹)时,一个人死了,但另一个人还活着。
结果:
两个玩家应该同时死亡。
我将如何实现两个玩家都应该死的情况?
我认为它必须处理 for 循环之一。 由于列表中的第一个玩家将首先射击,第二个玩家将首先达到 maxDamage,但是我希望他们同时达到 maxDamage。
游戏运作方式:
动画发生在一个回合中,它倒计时并执行放置的动作。
每回合有 4 个移动槽
for (Player p : listRegisteredPlayers()) {
if (!p.isDamageMaxed() && !p.isSunk()) {
// Apply damages if they collided with anyone
damagePlayers(leftShoots, p, Direction.LEFT, slot);
damagePlayers(rightShoots, p, Direction.RIGHT, slot);
}
if (p.isDamageMaxed() && !p.isSunk()) {
p.setSunk(slot);
}
}
}
你描述的行为清楚地意味着,如果有人死了,那么他就不能再开枪了。 现在,玩家 1 向玩家 2 射击,玩家 2 向玩家 1 射击。 现在,这似乎发生在您的情况下:
玩家 1 射击玩家 2
玩家 2 死了
player2 不开枪,因为他死了
解决方案似乎是将射击与伤害分开。 您需要实现一个循环,其中发生射击,但玩家尚未死亡。 你只需计算他们的伤害并从他们的生命中减少,但他们应该在循环结束时仍然活着。 然后,在下一个循环中评估玩家的健康状况并确保应该死亡的人死亡。
如果您需要更多详细信息,则需要提供更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.