Хотите ли вы перейти к или из вашей сцены, которая является RootViewController, я не думаю, что вы сможете использовать Cocos2D переходы на ней.Я предполагаю, что вы захотите применить плавный переход к представлению вашего RootViewController, но вам нужно будет использовать UIKit, возможно, CoreAnimation для этого.Насколько мне известно, Cocos2D может использовать переходы Cocos2D только для спрайтов, слоев и т. Д. В основном все, что является потомком базового класса CCNode.UIKit - это вообще отдельное пространство.
Это не значит, что вы не можете делать то, что хотите, но я считаю, что вам нужно изменить свое представление об этой проблеме.Одно из возможных решений ...
- Создание фиктивной сцены, в которой ничего нет
- Когда вы хотите перейти в сцену с помощью контроллера представления, исчезните в фиктивной сцене
- Примените базовую анимацию постепенного появления / исчезновения на контроллере представления
Это очень свободный псевдокод, но из моего опыта слияния компонентов UIKit с Cocos2D кажется хорошим местом для начала.
РЕДАКТИРОВАТЬ : Пример кода для анимации контроллера вида и сцены
Анимировать пустую сцену в Cocos2D, на которой я немного заржавел, но должно быть что-то вроде этого ...
CCScene* dummyScene = [CCScene node];
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:3 scene:dummyScene]];
Теперь анимируйте контроллер представления ....
[UIButton beginAnimations:nil context:NULL];
... do fade in/out, etc with your view controller ...
[UIView commitAnimations];
Ознакомьтесь с Core Animation Guide для обзора всех различных анимаций / модификаций, которые вы можете сделать,Я забыл, как ты справляешься с этим.Я думаю, что это может быть так же просто, как изменить непрозрачность представления для вашего viewController между вызовами beginAnimations
и commitAnimations
.Я бы сказал, попробовать в качестве первой попытки.Вы, вероятно, захотите начать с непрозрачности 0, чтобы она была полностью невидимой, а затем перейти к 1.0, что должно сделать ее полностью непрозрачной, по крайней мере, если я правильно понимаю вещи.Вам также, вероятно, потребуется вывести viewController в начало стека представлений.Для этого есть различные методы в UIView API.