cocos2d-x 安卓平台触摸和纹理都失效

cocos2d-x 在Android平台下,切入后台,从后台切到前台,cocos2d-x会重新加载纹理,截图(使用ccRenderTexture截图)和触摸失效

请问你解决了没有,我也遇到这样的问题,解决了请说一下

在网上找的资料,你试试:

需要修改三个文件:

  1. cocos2dx/platform/latformMacros.h

将Line84修改为 #define CC_ENABLE_CACHE_TEXTURE_DATA 0

macro

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

注释掉Line167。

comment

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

注释掉Line32~43。

main

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

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

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

第一个文件没有找到,我用的是cocos2d-x3.0的,第二个文件找到了,第三个文件没有你说的那么多行,我的只有这些:

#include "AppDelegate.h"

#include "cocos2d.h"

#include "CCEventType.h"

#include "platform/android/jni/JniHelper.h"

#include

#include

#define LOG_TAG "main"

#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)

using namespace cocos2d;

void cocos_android_app_init (JNIEnv* env, jobject thiz) {

LOGD("cocos_android_app_init");

AppDelegate *pAppDelegate = new AppDelegate();

}

那我就不清楚了,我没用3.0做项目,对3.0了解不多

遇见同样的问题,请问解决了没有,有的话求指导,多谢

在网上找的资料,你试试: 需要修改三个文件: 1) cocos2dx/platform/latformMacros.h 将Line84修改为 #define CC_ENABLE_CACHE_TEXTURE_DATA 0 macro 2)cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java 注释掉Line167。 comment 3)android工程目录下jin/hellocpp/main.cpp 注释掉Line32~43。 main 基本原理就是在activity进入后台后,不清除texture缓存,这样在activity回到前台后,不需要重新load资源。 我在自己的游戏上试了一把,修改之前切回游戏需要4秒左右时间,修改后不用1秒,可谓瞬间完成。 不过这个解决方案有些小问题,当有其他surfaceView的activity,比如集成了 Admob广告后,切回来时只能看到广告,而不显示游戏画面。有个老外Pablo Tonello回复帖子说没有集成Admob也遇到了这种情况。目前还不知道是啥问题,有待慢慢研究.
我用的是cocos2d-x2.2.2版本,其他版本我没试过,不清楚怎么回事.