1
CCTexture2D *t = new CCTexture2D();
t->initWithData(imageData, kCCTexture2DPixelFormat_RGBA8888, sprite->getTexture()->getPixelsWide(), sprite->getTexture()->getPixelsHigh(), sprite->getTexture()->getContentSize());

CCSprite *ret = CCSprite::createWithTexture(t);

这样一来,就只产生了类似标题和精灵的现象。

CCSprite *ret 海滩上的水的效果 Sprite 来自定义图像。IOS,Android,没有任何问题,通过Ret图像的onPause()->onResume(a)变黑

如何解决?

4

2 回答 2

1

任何未从文件加载的精灵在恢复后都会变黑,无论是使用数据初始化的 CCTexture2D 还是 CCRenderTexture。

最简单的解决方案:停止使用动态纹理,从文件中加载所有纹理。

解决方法:恢复事件回调放置在您的 cocos2d::CCApplication 子类中 - 它是方法 applicationWillEnterForeground()。您可以在此方法中手动重新加载所有纹理。例如,创建具有重新加载子纹理的虚拟方法的自己的接口 A,以及保持 A 的全局列表的管理器类 B。A 在构造函数中将自己注册到 B 中,并在析构函数中取消注册。

在每个使用动态纹理的类中(即没有文件表示),实现接口 A 和覆盖方法以重新加载所有动态纹理。

于 2013-05-24T10:54:38.110 回答
0

即使我面临同样的问题。您需要更改 CCPlatformMacros.h、Cocos2dxGLSurfaceView.java 和 main.cpp(在您的 jni 文件夹中)。

您应该仔细阅读此内容以进行详细更改https://github.com/cocos2d/cocos2d-x/pull/2384

于 2013-05-28T13:16:02.207 回答