cocos2d 2.0和UIKit混合编程, Push CCDirector的时候出现黑屏的天坑
症状
使用cocos2d 2.0和UIKit混合编程, 有一块用cocos2d编写的小程序, 将CCDirector push到一个UINavigationController里面. 虽然事先在后台初始化了cocos2d, 但在push的时候, CCDirector还是会显示为黑屏, 并且从右到左运动大概10%的距离后会卡一下, 然后push完成, 再过0.1s左右才会显示出来cocos2d的画面. 如下视频所示.
解决方案
网上对这个问题的讨论很少, 原因不是很清楚, 估计是因为cocos2d和UIKit使用了各自独立的OpenGL Context, 在push的时候, 两个context不一致, 导致cocos2d的buffer没有更新, 因此出现黑屏问题.
cocos2d论坛有一个类似的问题 http://www.cocos2d-iphone.org/forums/topic/cocos2d-2-0-device-ipad1-4-2-1-black-screen/
有一条建议是: Connect the CCGLView via IB and don’t init it via code.
果然, 就是这个问题!
因此, 要使用Interface Builder创建CCGLView, 而不能在代码里手动创建!
效果如下视频.
cocos2d 2.0和UIKit混合编程, Push CCDirector的时候出现黑屏的天坑的更多相关文章
- cocos2d-x与UIKit混合编程实现半透明效果
关键词 cocos2d-x, UIKit, transparent 问题 cocos2d-x使用一个专门的OpenGL View进行渲染, 它的渲染和UIKit是分开进行的, 因此我们使用时一般是把c ...
- 【转载】ANSYS的APDL与C语言混合编程(实例)
原文地址:http://www.cnblogs.com/lyq105/archive/2010/05/04/1727557.html 本文讨论的不是利用C语言为ANSYS写扩展(或者说是用户子程序), ...
- matlab2016b和c# .net4.0混合编程
参考:https://www.cnblogs.com/eniac12/p/4390845.html 主要想用c#写软件界面,利用matlab绘图,或者用里面的遗传算法. 我的环境是:Win10 64位 ...
- 玩转cocos2d-x lua-binding, 实现c++与lua混合编程
引言 城市精灵GO(http://csjl.teamtop3.com/)是一款基于cocos2d-x开发的LBS社交游戏, 通过真实地图的探索, 发现和抓捕隐匿于身边的野生精灵, 利用游戏中丰富的玩法 ...
- swift 与 OC 混合编程
原文地址:http://www.cocoachina.com/swift/20150608/12025.html 一.解决问题 Swift项目需要使用封装好的Objective-c组件.第三方类库,苹 ...
- c语言环境初始化&c语言和汇编混合编程
bootloader通常会分为两个阶段:第一阶段采用汇编语言来编写,主要是一些核心的初始化工作(内存,时钟的初始化),第二阶段使用C语言来编写,主要是它会完成一些板载硬件的初始化(串口,网口)然后其启 ...
- 如玫瑰一般的PHP与C#混合编程
故事背景是这样的,有一套项目,服务器端是用C#写的,为了完成某种事情,它需要使用到一个组件,这个组件很小但很重要,很不巧的是,这个这个组件是用PHP语言写的,如果为了使用这个组件而专门搭建一个PHP的 ...
- C和C++混合编程中的extern "C" {}
引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern "C" { #endif ...
- C# 托管和非托管混合编程
在非托管模块中实现你比较重要的算法,然后通过 CLR 的平台互操作,来使托管代码调用它,这样程序仍然能够正常工作,但对非托管的本地代码进行反编译,就很困难. 最直接的实现托管与非托管编程的方法就是 ...
随机推荐
- intel vt
EPT和VPID技术是内存虚拟化技术, 是页表扩充技术Extended Page Table (EPT) 的缩写, 是VT-x技术的一部分. 内存虚拟化的主要任务是实现地址空间的虚拟化,内存虚拟化是通 ...
- 方法(method)和函数(function)有什么区别?
方法(method)和函数(function)有什么区别? 定义和参数区别 函数是独立的功能,与对象无关,需要显示的传递数据 方法与对象和类相关,依赖对象而调用,可以直接处理对象上的数据,也就是隐式传 ...
- 火狐浏览器flash经常奔溃的
火狐浏览器flash经常奔溃的 1.首先,在火狐浏览器地址栏在输入:about:config?filter=dom.ipc.plugins.flash.disable-protected-mode,按 ...
- java线程同步实的现方式
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他 ...
- Node,Sockets,Cores,Threads
http://fishcried.com/2015-01-09/cpu_topology/ http://kodango.com/cpu-topology http://www.udpwork.com ...
- sell 创建项目
1.数据操作软件 2.创建项目 3.mevan 镜像
- Android为ViewPager添加切换动画——自己定义ViewPager
转载请注明出处:http://blog.csdn.net/allen315410/article/details/44224517 在上篇博客中,我写了一个使用属性动画为ViewPager加入切换动画 ...
- 学习练习SQL的数据库employee文件
这个地址是一个已经集成了employee的database的sql文件.所以你可以下载这个sql文件,然后执行sql语句到对应的数据库中,这样你就可以练习sql语句了. 第一个链接是用户指导如何使用的 ...
- jenkins权限配置不对导致jenkins无法登陆
提醒:每次更改权限时,要将config.xml备份一下. 在打开jenkins后,没有创建用户前,先不要勾选系统设置中启用安全选项,如果勾选了,就会出现无法进入jenkins的现象. 如果已经勾选可以 ...
- 1253 Dungeon Master
题目链接: http://noi.openjudge.cn/ch0205/1253/ http://poj.org/problem?id=2251 总时间限制: 1000ms 内存限制: 65536 ...