将游戏中心添加到游戏后第一次接触时 Spritekit 游戏场景停止

Posted

技术标签:

【中文标题】将游戏中心添加到游戏后第一次接触时 Spritekit 游戏场景停止【英文标题】:Spritekit Game Scene stop when first time contact after add Game Center to the game 【发布时间】:2015-06-19 06:08:26 【问题描述】:

我用的是精灵套件,在我使用GameCenter之前,一切都很好,但是在我添加了GameCenter之后,就出现了一些问题。游戏场景第一次显示后,当两个精灵第一次接触时(注意这里我要加分),游戏场景会停顿两秒左右,fps在零左右,但在60左右之前,这是太奇怪了,对吧?经过这次接触,一切都很顺利,这只是在游戏第一次启动时发生的,我做了一些改变。首先,我注释掉两个精灵接触时加分的代码,奇怪的是,现在场景不会停止,接地很好,但我必须加分,因为用户已经赢得了一个分数。所以然后我在比赛开始前做了一些提前接触,也就是说原来的 分数是-1,我做了提前接触,所以游戏开始时,分数从0开始,但没想到,当两个节点第一次接触时,用户正在玩时场景仍然会停止,所以我真的没有知道现在是什么问题。

请注意,为什么我会说是游戏中心的问题,因为当我不连接互联网时,一切都很顺利,这意味着我不会将分数添加到游戏中心。但是又奇怪了,所以我猜问题一定是给游戏中心加分,所以我把所有给游戏中心加分的方法都注释掉了,所以我想现在一切都很好了,但是,问题仍然存在,所以现在我无能为力了,为什么会出现这个问题,你们之前有没有遇到过这个问题?

我的代码:

让'如果碰撞==physicsCategory.basket4 | PhysicsCategory.bugnode if contact.bodyA.categoryBitMask == physicalCategory.basket4 contact.bodyB.node?.removeFromParent() else contact.bodyA.node?.removeFromParent() scoreama++ println("get teh shittttttttttttttttttttttttt") scoreLabel .text = "(scoreama)" finalScore1.text = "(scoreama)" showScore() '

【问题讨论】:

你能发布你的相关代码吗?大概在didBeginContact @Andy Heard 好吧,如果碰撞 == PhysicsCategory.basket4 | PhysicsCategory.bugnode if contact.bodyA.categoryBitMask == physicalCategory.basket4 contact.bodyB.node?.removeFromParent() else contact.bodyA.node?.removeFromParent() scoreama++ println("get teh shittttttttttttttttttttttttt") scoreLabel .text = "(scoreama)" finalScore1.text = "(scoreama)" showScore() ' 这就是didBeginContact里面的代码 【参考方案1】:

如果您从 GameScene 调用 Game Center 函数,则将游戏中心代码带到 GameScene 并将“view”更改为“self.view!”。然后它应该可以工作了!

【讨论】:

以上是关于将游戏中心添加到游戏后第一次接触时 Spritekit 游戏场景停止的主要内容,如果未能解决你的问题,请参考以下文章

在运行时将一个游戏对象组件添加到另一个具有值的游戏对象中

添加到列表中的Snake游戏问题

在 Unity2D Sprite 中使用 Animator 将动画添加到游戏对象时无法翻译游戏对象

iOS 7 SpriteKit 游戏 - 保存加载游戏时出错:'尝试将 nil 节点添加到父节点:<SKNode> 名称:'(null)'

将Mapbox sdk添加到build.gradle后无法运行Libgdx游戏

将 Google Play 游戏服务添加到现有应用程序