Spritekit Game Scene останавливается при первом контакте после добавления Game Center в игру

Я использую набор спрайтов, и прежде чем я использую GameCenter, все идет хорошо, но после добавления GameCenter возникают некоторые проблемы. После того, как игровая сцена отображается в первый раз, когда два спрайта впервые соприкасаются (обратите внимание, что здесь я добавлю счет), игровая сцена остановится примерно на две секунды, а fps будет около нуля, но до того, как он достигнет 60, это так странно, правда? После этого контакта все идет гладко, это происходит только при первом запуске игры, и я сделал некоторые изменения. Во-первых, я закомментирую код добавления оценки, когда два спрайта соприкасаются, и странно, сцена теперь не остановится, заземление идет нормально, но я должен добавить оценку, потому что пользователь уже выиграл оценку. Итак, я сделал предварительный контакт перед началом игры, что означает, что первоначальный счет равен -1, и я сделал предварительный контакт, поэтому, когда игра начинается, счет начинается с 0, но неожиданно сцена все равно остановится. когда пользователь играет при первом контакте двух узлов, так что я действительно не знаю, в чем проблема сейчас.

Обратите внимание, почему я сказал, что проблема в Game Center, потому что, когда я не подключаю интернет, все идет гладко, а это значит, что я не буду добавлять счет в Game Center. Но опять же странно, поэтому я предполагаю, что проблема заключается в добавлении счета в GameCenter, поэтому я закомментирую все методы, которые добавят счет в игровой центр, так что я думаю, что теперь все в порядке, но проблема все еще возникает, так что теперь я ничего не могу сделать, так почему эта проблема, кто-нибудь из вас встречался с этой проблемой раньше?

Мой код:

let 'if collision == PhysicsCategory.basket4 | PhysicsCategory.bugnode { if contact.bodyA.categoryBitMask == electronicsCategory.basket4 { contact.bodyB.node?.removeFromParent() } else{ contact.bodyA.node?.text = "(Scoreama)" finalScore1.text = "(Scoreama)" showScore() } '

1 ответ

Решение

Если вы вызываете функцию Game Center из GameScene, перенесите код игрового центра в GameScene и измените "view" на "self.view!". Это должно тогда работать!

Другие вопросы по тегам