我正在尝试制作一款游戏,其中两个玩家进行战斗并按下屏幕上的按钮来对彼此造成伤害。角色可以造成的伤害应该是1到10之间的随机数。被攻击的角色受到的伤害应该是相同的随机数。
该游戏可在 Android 和 iOS(Java 和 Swift)上玩,但如何确保为造成的伤害和收到的伤害生成相同的随机数?我意识到我可以将造成的伤害发送给被攻击的玩家,并从他们的生命值中扣除该金额,但我想知道是否有一种方法可以在 Java 和 Swift 中生成相同的随机数序列,这样我就不会通过服务器。
最佳答案
您可能可以让每个对等点既是客户端又是服务器。这称为对等网络。但是,您必须确保客户端没有被黑客攻击。这可能很难实现。这是一个艰难的情况,小型服务器将是最好的方法。
(P.S. 最好的语言很可能是 Haxe 。我以前使用过这种语言)
...实际上,我考虑过,你可以有一个在对等点之间共享的随机种子。您可以计算双方对双方的伤害,以确保其有效。
编辑:
根据文档,Haxe 的 Math.random()
在具有给定种子的平台上似乎是相同的。它可以编译为 iOS 和 Android 代码以及其他平台。
关于java - 多种语言的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600981/