通过CCTexture2D 的initWithData方法创建一个纹理,纹理的数据【就是每个像素点】是我自己通过运算得出的。
生成的纹理在PC和IOS平台下是完全正常【包括IOS真机测试】。但在Android平台【真机】下却只显示一片白色,折腾了两天找不到问题所在【我刚学c++不久,也不能确定是否是我自己的代码有问题。】
正常的显示应该是这样的:
52
但Android平台下是这样的:
50
下面是完整的demo代码,大家帮我看看。
int imgWidth=100;
int imgHeight = 100;
CCSize texSize = CCSizeMake(100, 100);
int pixOff = 0; //每一个像素结束
int bytes = texSize.width * texSize.height * 4;
unsigned char* _imgPixel =new unsigned char;
for (int x = 0; x < imgHeight; x++) {
for (int y = 0; y < imgWidth; y++) {
int red = CCRANDOM_0_1() * 255;
int green = CCRANDOM_0_1() * 255;
int blue = CCRANDOM_0_1() * 255;
_imgPixel = red;
_imgPixel = green;
_imgPixel = blue;
_imgPixel = 255;
pixOff += 4;
}
}
CCTexture2D* t=new CCTexture2D();
t->initWithData(_imgPixel,kCCTexture2DPixelFormat_RGBA8888,texSize.width, texSize.height, texSize);
CCSprite* sprite = CCSprite::spriteWithTexture(t);
sprite->setPosition(ccp(200,200));
sprite->setTextureRect(CCRect::CCRectMake(0,0,100,100));
this->addChild(sprite);
已经向cocos2d-x开发的几个大神求救了。但他们比较忙,还在等他们的回复,兄弟姐妹们也帮我看一下嘛