问题标签 [gkturnbasedmatch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 较大的 GC 匹配大小会导致性能问题吗?
Apple Turn Based Game Center 比赛的上限为 64 kB。我猜这些匹配是作为后台任务发送和接收的。
我可能能够将所有匹配数据存储在 64 kB 内,但另一种选择是每轮仅发送 ~ 1kB 增量块。
正在进行的比赛的性能是否会受到后台加载和接收任务的影响,尤其是比赛规模是否是个问题?该游戏在玩游戏期间是 CPU 和图形密集型的。
game-center - 实例化的 GKLocalPlayerListener
大多数基于回合的比赛 Game Center 示例包括单点,通常称为 humhumHelper,或类似的东西。如果我尝试以更动态的方式做这件事,我会在找麻烦吗?
一个例子是我在场景的 init 函数中注册了一个监听器(将场景作为监听器),然后在 dealloc 函数中取消注册场景。如果在用户从游戏中心应用程序操作游戏的同时该场景不活动,此解决方案是否会出现问题?有人说 GC 事件是缓冲的,但在那种情况下,多长时间?
一个相关的问题:这句话应该如何解释?
“只注册一个监听器一次。多次注册一个监听器会导致未定义的行为。”(https://developer.apple.com/library/prerelease/ios/documentation/GameKit/Reference/GKLocalPlayer_Ref/index.html# //apple_ref/occ/instm/GKLocalPlayer/registerListener )
我的理解是有多个监听器是可以的,但是注册同一个监听器两次是不行的。你怎么看?
ios - 在 iOS 的多人回合制游戏中使用 Node js
希望你们做得很好。我想在 iOS 中制作一个实时回合制游戏。我知道这可以通过在 iOS 中使用 GAME CENTER 来实现,但我必须在浏览器和 iOS 应用程序之间播放。WEB TEAM 正在使用 node js 在网络浏览器上制作这个游戏,他们还建议我在 iOS 游戏中也使用 node js。
有没有人知道如何将节点 js 用于这种目的。谢谢大家!:)
game-center - 确定 GKTurnBasedMatch 的类型
我想知道某个 Game Center 回合制比赛是作为自动匹配比赛开始的,还是玩家是由朋友邀请的。
我试图想办法从 GKTurnBasedMatch 对象本身中看到这一点,但我想这是不可能的。我什至没有想出任何合理的破解方法。:)
我可以将它存储在匹配的数据部分,但我想在一个有很多匹配的表中使用这个信息,加载许多 kB 数据(并等待数据加载回调)有点矫枉过正可以使用此一位信息之前的每个匹配项。
一种替代方法是将此信息存储在本地文件中,也许我必须这样做,但感觉有点容易出错 wrt 不一致等。
有没有人有一个很好的解决方案?
ios - Game Center 默认匹配制作者视图控制器大部分时间不显示现有匹配项
我正在使用 Swift 使用 Game Center 为 iOS 创建回合制比赛。我的测试设备运行的是 iOS 8.3。我正在使用游戏中心 (GKTurnBasedMatchmakerViewController) 提供的标准(非自定义)视图控制器与游戏中心交互。
当我启动我的应用程序时,它首先会自动通过 Game Center 进行身份验证。然后我按下界面上的一个按钮并拉起媒人视图控制器。大约 1/3 的时间,当我显示这个 matchmaker 视图控制器时,它不会加载,也不会显示我现有的 Game Center 比赛,而是直接进入 Auto Match。其他时候,它发现它们很好。如果它没有显示它们,如果我取消视图控制器并再次将其拉起,它通常会在第二次尝试时找到它们。请注意,我可以使用 Game Center 对本地玩家进行身份验证,所以我不会 *think( 这就是问题所在。
这个问题的原因是什么?在我尝试调出视图控制器时,是否有一些东西在与 Game Center 对话时尚未完成?是否有补救措施或解决方法?
ios - iOS 8.3 中回合制多人游戏中心的错误
我想制作基于回合的多人益智类型游戏。它适用于所有功能,包括获取任何玩家回合结束的通知。但在 iOS 8.3 中,我无法在玩家回合结束时调用委托方法。任何解决方案?
我也注册了监听器。但它没有被调用。这是代码..
ios - 通过gamecenter app进入游戏时如何接收回合制比赛数据?
我GKTurnbasedMatchMakerViewController
用来开始一个新的回合制游戏或检查现有的游戏,这工作得很好。但是我被困在这种情况下:假设玩家在他的手机中打开游戏中心应用程序并在那里看到现有的回合制比赛。他单击比赛并单击按钮视图轮到/播放轮次(取决于当前轮到谁),这将他带入我的应用程序。现在我想要的是我们从GKTurnbasedMatchMakerViewController
委托 didFindMatch 获得的匹配数据,以便我可以向他展示适当的 UI。
目前,在阅读了很多之后,我发现GKLocalPlayerListner
可能是我正在寻找的东西。所以这就是我所做的。
在我的类扩展中添加了 GKLocalPlayerListner。
在验证用户身份时为本地播放器注册的侦听器。
在我的班级中添加了 GKLocalPlayerListener 委托方法。
但是从游戏中心应用程序进入游戏时,我无法获得任何这些。
那么首先 GKLocalPlayerListener 甚至做我想要实现的目标吗?如果不是,甚至有可能在 iOS 中实现我想要的吗?请帮我解决这个问题。
gamekit - GameKit 转弯超时
GameKit 允许我们为比赛中的下一个参与者以超时结束回合。但是,我找不到为第一个参与者的第一步设置超时的方法。有没有办法做到这一点?
编辑我开始明白为什么 Apple 会将其从 GameKit 中排除。当您刚刚加入 GKTurnBasedMatch 时,您将始终轮流进行,因此无需暂停,因为添加它是为了避免玩家在轮到他们时等待太久而感到沮丧。问题是我的超时用例是不同的。我正在设计一场比赛,而暂停意味着你输掉了比赛,无论是否是第一回合。所以我总是需要有能力让当前回合超时。恐怕我需要在糟糕的服务器上实现这个。
ios9 - GameKit 回合制比赛和与服务器错误的通信
发送转弯时,endTurnWithNextParticipants 频繁(可能有 30%-50% 的时间)给出: Error Domain=GKErrorDomain Code=3 “由于与服务器通信出错,请求的操作无法完成。” 但是,在发送转牌并收到此错误后,从发送转牌的玩家的角度来看,似乎转牌已成功发送。发送玩家能够重新加载比赛。从 GC 重新加载的匹配数据与刚刚发送的匹配数据相同。但是,如果这是比赛的第一个回合,那么对于下一个参与者来说,这个回合似乎永远不会收到。然而,如果这不是比赛的第一个回合,那么对于下一个参与者来说,尽管有错误,但通常仍会收到回合。因此,当您收到此错误并且您尝试在比赛中发送第一回合时,似乎只有一个严重的问题。在 iOS8 中这对我来说不是问题,但现在在 iOS9 中。有没有人见过这样的问题(以及 iOS9 中类似的回合制比赛服务器通信问题)?我可以做些什么来解决这个问题吗?