测试测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年10月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Jack Cook 维护。
GCHelper是建立在这篇教程中描述的GameKitHelper类之上,用于Swift实现的GameKit。如果您喜欢这个项目,请随意给它加星标或关注更新。如果您在您的某个应用中使用它,我很乐意了解它的使用情况!请在Twitter上告诉我@jackcook36。
如果您喜欢不使用依赖管理器,可以下载GCHelper.swift并将其拖放到项目中。请注意,这将消除在Swift文件顶部包含import
语句的需要。
在开始使用Game Center之前,用户需要登录。通常在这些应用中,这会在application:didFinishLaunchingWithOptions:
方法中配置
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
GCHelper.sharedInstance.authenticateLocalUser()
return true
}
为了使多人游戏正常工作,需要创建匹配。
GCHelper.sharedInstance.findMatchWithMinPlayers(2, maxPlayers: 4, viewController: self, delegate: self)
创建匹配后,您可以使用NSData
对象在玩家之间发送数据。
let success = GCHelper.sharedInstance.match.sendDataToAllPlayers(data, withDataMode: .Reliable, error: nil)
guard success else {
print("An unknown error occured while sending data")
}
我意识到这个方法实际上并不由GCHelper提供,但将其在这里报道显然很重要。
如果您在iTunes Connect中创建了任何成就,您可以使用此方法访问这些成就并更新其进度。如果特定成就不以百分比的形式使用,则可以将percent
值设置为0或100。
GCHelper.sharedInstance.reportAchievementIdentifier("achievementIdentifier", percent: 35.4)
与成就类似,如果您在iTunes Connect中创建了一个排行榜,则可以使用此方法为已登录帐户设置分数。
GCHelper.sharedInstance.reportLeaderboardIdentifier("leaderboardIdentifier", score: 87)
GCHelper还包含一个用于显示Apple的GameKit界面的方法。这些界面可以用于显示成就、排行榜或挑战,这取决于对viewState
的使用。在此案例中,self
是呈现视图控制器。
GCHelper.sharedInstance.showGameCenter(self, viewState: .Achievements)
要接收有关匹配的更新,您可以在代码中实现三个代理方法。
当匹配开始时,将触发此方法。
func matchStarted() {
}
此方法在比赛结束时被调用,无论是由于玩家断开连接等错误,还是您实际结束比赛。
func matchEnded() {
}
我之前提到过如何发送数据,这是您接收这些数据的方法。
func match(match: GKMatch, didReceiveData data: NSData, fromPlayer playerID: String) {
}
GCHelper 在 MIT 许可证下可用。有关详细信息,请参阅 LICENSE 文件。