cocos2dx返回Android游戏黑屏解决办法

用Cocos-2dx搞一个游戏,但是要调用到java代码,java代码里面需要从cocos的activity切换到其他的activtiy(如A,B),切换回cocos的activity的时候,会遇到短暂黑屏的问题。看到下面这个帖子,修改后问题解决。

原文地址:http://www.verydemo.com/demo_c131_i92070.html

用来解决返回Android游戏加载资源时黑屏的问题。帖子过些日子估计就沉了,所以转出来,以供后面查询。

需要修改三个文件:

1) cocos2dx/platform/CCPlatformMacros.h

 

将Line84修改为 #define CC_ENABLE_CACHE_TEXTURE_DATA       0

2)cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java

注释掉Line167。

3)android工程目录下jin/hellocpp/main.cpp

注释掉Line32~43。

基本原理就是在activity进入后台后,不清除texture缓存,这样在activity回到前台后,不需要重新load资源。

我在自己的游戏上试了一把,修改之前切回游戏需要4秒左右时间,修改后不用1秒,可谓瞬间完成。

不过这个解决方案有些小问题,当有其他surfaceView的activity,比如集成了Admob广告后,切回来时只能看到广告,而不显示游戏画面。有个老外Pablo Tonello回复帖子说没有集成Admob也遇到了这种情况。目前还不知道是啥问题,有待慢慢研究。

你可能感兴趣的:(cocos2dx返回Android游戏黑屏解决办法)