iOS Game Center GKScore上下文,如何编码信息?

标签 ios game-center gamekit gkscore

我正在使用 Game Center 进行首次实现。我试图让玩家互相发出 GKScore 挑战。我的游戏包括以随机顺序玩一定数量的关卡。 (假设一个游戏有 9 个关卡,从 30 个可能的关卡中随机选择。)

发出挑战时,我需要能够包括挑战玩家玩过的关卡,以便接收玩家可以按相同的顺序玩这些相同的关卡。

我知道我可以包含一个 GKScore.context : UInt64 ,它会传回给我,但我无法弄清楚如何最好地编码我的关卡信息以便传递并希望得到一些指向示例或其他解决方案/最佳实践的指示。

我知道我可以使用按位标志来编码 9 级游戏中应包含哪些级别,但我不确定如果这样做的话我还可以如何包含顺序。

我知道我可以使用 GKScore.context 生成随机 ID 号,将游戏信息上传到我的服务器,然后使用相同的标识符将其取回,但我确实这样做了不想向本应完全在设备上运行的游戏添加服务器组件。我不想要服务器负载,也不想要服务器代码维护。

在不依赖服务器组件的情况下,您还使用了哪些其他选项来通过 GKScore.context 传输挑战信息?

最佳答案

生成适合 64 位的随机值。使用它来为随机数生成器提供种子,并以您需要的任何顺序生成任何级别的数字。将种子保存为上下文。对于被挑战的玩家,从上下文信息中获取种子并使用相同的种子初始化您的随机数生成器。您将获得相同序列的“随机”值,因此会获得相同顺序的相同级别数字。当必须提供挑战时,唯一的网络内容将通过 Game Center。

关于iOS Game Center GKScore上下文,如何编码信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58884411/

相关文章:

ios - Gamecenter init/authentication 使 SpriteKit 的 Sprite 移动滞后

android - iOS 和 Android 设备之间的点对点通信

ios - .vimrc 中的 "set number"在 Vim for iOS 中不工作

iphone - 在 NSDocumentDirectory 和 UIScrollView 中删除

ios - 验证从 iOS 到后端的通信

bluetooth - iPhone 3.0中Gamekit服务器可以支持多少个客户端

android - iOS 和 Android 之间的蓝牙传输?

ios - 如何获取TableView中选定的UITableViewCell的原点?

ios - 确定 iOS 多人游戏中的最佳主机

ios - 如何将用户发送至 Game Center 应用程序?