结合Cocos2d与UIKit视图开发移动端应用的实践指南
1. Cocos2d与UIKit的差异
Cocos2d在渲染视图方面速度更快,但会失去UIKit应用的一些自动特性,如自动旋转。实际上,所有UIKit视图也是由OpenGL ES渲染的,但UIKit背后有很多用于图形用户界面的额外处理,对于游戏开发来说这是性能的浪费。早期完全使用UIKit、Core Graphics和Core Animation编写的游戏往往运行缓慢且响应不灵敏。
Cocoa Touch和Cocos2d在自动旋转处理上有明显差异。不过,Cocos2d引擎最终解决了这个问题,使得UIKit和Cocos2d视图都能旋转,但存在性能方面的缺点。而且,在使用UIKit和OpenGL ES时,需要考虑坐标系统的差异,尤其是在视图旋转时。
Cocos2d直接与图形硬件交互,使用CCNode层次结构来显示图形元素,CCScene是该层次结构的第一个元素。而UIKit框架使用视图层次结构,通常以UIWindow为最顶层元素。这两个视图层次结构不兼容,不能将UIView添加到CCNode,反之亦然。在使用CCTransitionScene切换CCScene时,Cocos2d节点会移动,而UIKit视图会保持固定,除非单独同步移动它们。
2. 在Cocos2d中添加第一个UIKit视图
在示例项目CocosWithCocoa01中,可以看到使用UIKit视图与Cocos2d结合的最简单示例,它在默认Cocos2d项目模板创建的场景上显示一个UIAlertView。
重新创建项目的步骤如下:
1. 打开Xcode,选择“File ➤ New ➤ New
超级会员免费看
订阅专栏 解锁全文
46

被折叠的 条评论
为什么被折叠?



