Используйте CCLabelBMFont внутри UIViewController внутри узла - PullRequest
0 голосов
/ 09 ноября 2011

Я играю в игру, когда игрок проигрывает, и появляется экран Game Over.Но мой экран Game Over находится в UIViewController.Я звоню в мой Директор, и все в порядке.

Экран Game over выглядит как оверлей в игре

Но я использую пользовательские шрифты, и на моем экране Game Over я хочу использоватьЭто.Но как я мог использовать только «CCLabelBMFont» в Game Over.

Я думаю, что способ (не лучше).Это то, что вы печатаете в большем z-index, чем Game Over the text, я хочу это с "CCLabelBMFont".Но я хочу, чтобы в GameOver.m было все содержимое Game Over

Что я мог сделать?Спасибо всем.

1 Ответ

0 голосов
/ 10 ноября 2011

Чтобы представить что-либо из Cocos2D поверх представления UIKit, вам нужно будет сделать представление Cocos2D прозрачным и ввести фиктивное представление.Вы не можете добиться этого эффекта с помощью z-порядка, поскольку это влияет только на узлы в представлении Cocos2D OpenGL.

Чтобы сделать представление Cocos2D прозрачным, необходимо изменить глубину цвета на 32 бита (RGBA8888) по умолчанию16-битный режим в инициализации EAGLView (делегат приложения).Затем настройте иерархию представлений с помощью фиктивного представления, чтобы вы могли фактически добавить представления UIKit в фоновом режиме и представление Cocos2D в качестве основного представления.

Основной подход заключается в том, чтобы сделать это в вашем делегате приложения методом didFinishLaunching:

UIView* dummyView = [[UIView alloc] initWithFrame:[window bounds]];
[dummyView autorelease];
[dummyView addSubview:[CCDirector sharedDirector].openGLView];
rootViewController.view = dummyView;
[window addSubview:rootViewController.view];

// make the cocos2d view transparent:
glClearColor(0.0, 0.0, 0.0, 0.0);
[[CCDirector sharedDirector] openGLView].opaque = NO;

С этого момента вы можете использовать dummyView для управления иерархией представления.Например, когда вы добавляете вашу игру поверх представления в dummyView, вы хотите вызвать sendToBack для него, чтобы он рисовался позади представления cocos2d.

Весь процесс со всеми необходимыми вещами подробно описан вmy Книга по разработке игр Cocos2D (2-е издание) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...