我正在构建一个类似于宝石迷阵的游戏。我计划集成 Game Kit 以允许玩家与朋友对战。我想要的流程是:
- 玩家 1 挑战朋友
- 播放器 1 开始播放。玩家 2 可能会或可能不会同时开始游戏。他可能会立即或几天后开始比赛。
- 当两者都完成后,比较分数以确定谁是赢家。两人都被警告了。
我认为Game Kit的轮流是要走的路。但这并不是真正的回合制游戏,因此它并不适合这种用法。
因为我不希望玩家 2 必须等待玩家 1 完成才能开始,我想我可以让玩家 1 的“第一轮”简单地将棋盘状态发送给玩家 2。我不'不希望玩家 1 必须等待玩家 2 完成才能开始玩。
到目前为止,我正在考虑两种方法,但我希望其他人可能有更好的主意。
方法 1:玩家 1 的“第一轮”是将棋盘状态发送给玩家 2。玩家 1 现在可以玩棋盘,他的分数存储在本地,检索它的密钥是比赛号码。每当玩家 2 完成比赛时,他的得分就会在 matchData 中发送回玩家 1。玩家 1 会收到通知,轮到他了。当他重新开始比赛时,将检索他本地存储的分数并与玩家 2 进行比较。此时宣布获胜者。这并不理想,因为玩家 1 必须重新登录,即使他已经玩完了。
方法 2:与方法 1 一样,玩家 1 的“第一轮”是将棋盘状态发送给玩家 2。玩家 1 可以玩棋盘,但现在他的分数被发布到 Rails 服务器(或者可能类似于 Parse.com 以简化它)。在玩家 2 完成他的回合后,会进行 api 调用以查看玩家 1 是否已经完成。如果他有,则检索并比较分数并确定获胜者。如果没有得分,则玩家 2 回合结束并将控制权交还给玩家 1。当玩家 1 完成时,比较两个分数并确定获胜者。这里唯一的问题是我必须在我不想的时候创建一个后端。
无论如何,建议表示赞赏!谢谢你。