- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 GameCenter 时遇到了 2 个问题。
如果玩家未登录 GameCenter,则在向您发出提示称您未登录后,我将无法再单击 View 上的任何按钮。
如果玩家登录 GameCenter,访问排行榜后,按“完成”不会关闭排行榜 View 。
这是我与 GameCenter 相关的代码:
游戏 View Controller :
func authPlayer() { // Gets called in ViewDidLoad
let localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {
(view, error) in
if view != nil {
self.presentViewController(view!, animated: true, completion: nil)
}
else {
print(GKLocalPlayer.localPlayer().authenticated)
}
}
}
游戏场景:
if gameCenterBtn.containsPoint(location) { // In touches began for touch in touches
saveHighScore(highLevel)
let viewController = self.view!.window?.rootViewController
let gcvc = GKGameCenterViewController()
viewController?.presentViewController(gcvc, animated: true, completion: nil)
}
func saveHighScore(number : Int) {
if GKLocalPlayer.localPlayer().authenticated {
let scoreReporter = GKScore(leaderboardIdentifier: "myLeaderBoardID")
scoreReporter.value = Int64(number)
let scoreArray : [GKScore] = [scoreReporter]
GKScore.reportScores(scoreArray, withCompletionHandler: nil)
}
}
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
}
任何和所有帮助将不胜感激
最佳答案
1) 不确定这是否有帮助,但您的登录代码不太正确。如果没有登录 View Controller 并不一定意味着玩家已登录。您也没有处理可选错误。试试这个。
localPlayer.authenticateHandler = { [unowned self] (viewController, error) in // will handle login changes also
if let error = error {
print(error.localizedDescription)
return
}
if let viewController = viewController {
self.presentViewController(viewController, animated: true, completion: nil)
}
else if self.localPlayer.authenticated {
print("Player authenticated")
}
else {
print("Player not authenticated")
}
}
我不确定为什么你的 gameViewCntroller 不会响应。你不只是在你的 gameViewController 中加载第一个 SKScene 吗?您能否进一步描述(也许使用一些代码)之后不起作用的内容。
2)它不会关闭屏幕,因为您没有设置委托(delegate)。
创建游戏中心 View Controller 的代码应该如下所示
let viewController = self.view?.window?.rootViewController
let gcvc = GKGameCenterViewController()
gcvc.gameCenterDelegate = self // YOU FORGOT THIS LINE
viewController?.presentViewController(gcvc, animated: true, completion: nil)
关于ios - Swift GameCenter 行为不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36102502/
这是关于 GameCenter 的。 因为“GKLocalPlayerListener 协议(protocol)继承了GKChallengeListener、GKInviteEventListener
我一直从 GA 和用户那里收到这个崩溃报告......但是我无法通过使用 ios7 和 ios8 测试 iphone5、5s、6 来重现这个异常。当应用程序进入后台时,此问题无处可去。奇怪的是,gam
在这里耐心等待,因为有很多东西要解释! 我正在努力在我的游戏中实现一个 Game Center 高分排行榜。我已经环顾四周寻找如何正确实现此代码的示例,但找不到很多 Material 。因此,我尝试根
加载 GameCenter 后,它处于默认的纵向 View 。 是否有办法像《水果忍者》那样加载并锁定在横向 View 中? 谢谢.. 我正在将它与 cocos2d 一起使用.. 最佳答案 您是否使用
在我看来,Apple 似乎有点急于实现 GameCenter。也许我忽略了一些事情。 如果您创建一款想要提供应用内购买功能的游戏(假设您想要出售额外的 map 或附加组件),是否有任何方法可以使用 G
我调用了下面的代码来添加在屏幕顶部弹出的 Game center 用户横幅,但它说 Game 无法被 Game Center 识别: 我将其添加到我的 addDidFinishLaunching 中:
我可以通过邮件向排行榜上的顶级玩家发送消息吗?有没有办法获取他们的电子邮件列表? 最佳答案 我非常确定 Apple 绝不会向用户(或开发者)提供其他用户的个人信息,例如他们的电子邮件地址。这将导致各种
我的应用使用 Game Center。我尝试在 VC 加载时记录用户。如果他之前已经登录过,那就太好了,它会在他登录时将通知显示在顶部。如果他没有登录 - 很好,它会显示游戏中心登录 VC。 但是,当
在包含几十个级别(超过一百个)的游戏中,我希望显示/存储每个级别的最高分数。 我在 API documentation 中看到最多可以创建 25 个排行榜类别...... 有什么办法可以实现这种逐级高
我无法显示我的排行榜集。不确定是否可行,但到目前为止我无法让它工作。 在某些背景下,我的游戏中有多个关卡,在每个关卡中我有 3 个评分指标,因此我为每个关卡设置了一个排行榜。 例如: Level 1
我在使用 GameKit 时遇到了一个奇怪的问题。我想知道其他人是否遇到同样的问题。是错误吗? 我已经使用游戏套件实现了一个基本的回合制游戏。一个玩家邀请另一个玩家 + (void)findMatch
func authenticateLocalPlayer(player: GKLocalPlayer) { player.authenticateHandler =
我对 GameCenter 的回合制功能有疑问。该应用程序的免费版本将允许用户一次最多创建 3 场比赛,并将阻止任何创建自动比赛或邀请其他玩家的尝试。我的问题如下,如果一个没有创建比赛限制的玩家邀请另
我有一个 iPhone 游戏,我刚刚添加了 GameCenter 支持,一切似乎都运行正常。但是,作为一个不使用 GameCenter 的人,我添加了一个选项,以便用户可以将其关闭。唯一的问题是,一旦
所以我想在我的游戏中加入 GameCenter 成就,但我必须为每个成就提供图像以在 GameCenter 应用程序中显示。 Apple 并不清楚所需的尺寸。我在网上看到他们需要 512 像素的图像,
我在沙盒模式下为我的游戏创建了一个排行榜。然后我尝试使用不同的 gamecenter 帐户玩游戏。但我只能看到当前登录帐户的分数。这是对的吗?或者我错过了什么?如何用一堆记录填充沙盒排行榜来测试我的游
我正在使用以下函数将分数提交到游戏中心。如何修改下面的代码,以便只有当分数高于已提交的分数时我才能发送分数?而且我不想在本地维护分数。有帮助吗? - (void) reportScore: (int6
一旦用户登录到游戏中心,我希望我的 iphone 应用程序预先填充一些字段。具体来说,用户名! 我有完整的登录工作 - 以及排行榜和成就都在工作 - 我似乎无法找到如何在任何地方访问用户名属性。 任何
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
当前是否有办法从网络读取 GameCenter 排行榜数据? 我正在寻找一种只读方式来在配套网站上显示排行榜。我不需要发布分数或以其他方式操作设备上的排行榜。 我感觉答案是否定的,我需要使用 Open
我是一名优秀的程序员,十分优秀!