将游戏中心添加到游戏后第一次接触时 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 游戏场景停止的主要内容,如果未能解决你的问题,请参考以下文章
在 Unity2D Sprite 中使用 Animator 将动画添加到游戏对象时无法翻译游戏对象
iOS 7 SpriteKit 游戏 - 保存加载游戏时出错:'尝试将 nil 节点添加到父节点:<SKNode> 名称:'(null)'