繁体   English   中英

Java游戏:同时射击多个玩家

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM