У меня есть MainMenuScene и GameScene...
В MainMenu у меня есть кнопка start, которая переходит в GameScene, посреди игры я хочу перезапустить или просто выйти из игры, что из тех 2, что я делаю, когда я заменяю GameScene на другую GameScene или просто захожу вернуться в главное меню, а затем снова вернуться в новую GameScene, FPS начинает падать и падать, если я делаю этот цикл 1 раз, FPS падает с 60 до 30, если я делаю это еще раз, FPS падает до 15, и так далее и так далее...
Я полагал, что проблема была в утечке памяти, потому что я оставил сцену живой ... но я не проверял и не проверял, и нигде нет сильной ссылки на эту сцену, а также ее ARC включен, я проверил с профилем инструментов и ничего нет утечки памяти по приборам из Xcode.
У кого-нибудь была эта проблема ... или кто-нибудь знает, что я могу делать неправильно? согласно тому, что я прочитал в методе ReplaceScene от CCDirector, эта сцена уничтожается и заменяется новой, поэтому проблем быть не должно.
== Забыл упомянуть: у меня есть слабая ссылка на GameLayer и GameScene в синглтоне. Однако, когда я заменяю сцену, сразу после этого я устанавливаю эти 2 нуля, хотя я не должен, потому что они слабая ссылка, но я сделай это на всякий случай.
Добавление изображения для большего контекста:
На изображении выше вы можете видеть, что каждый раз, когда вызывается ReplaceScene из CCDirector, сцены, в частности GameScenes, освобождаются. Так что утечка памяти - это не проблема, но кажется, что сцены не уничтожаются, или это мое мнение, потому что FPS просто продолжает падать и падать каждый раз.
... Через несколько сцен замены...
Странно то, что MainMenu ВООБЩЕ не затрагивается, время рендеринга такое же... вызовы отрисовки те же (это понятно, даже в GameScene вызовы отрисовки остаются прежними.), но в GameScene FPS продолжает падать, а время рендеринга становится ОГРОМНЫМ, из-за чего игра становится невероятно медленной.
Будет продолжать проверять.