C++ Cocos2d:如何从2D数组生成纹理、精灵或图像?
我有一个256x256的双倍数组,代表一个高度图,我用它来随机生成地形。目前,我通过为阵列中的每个元素创建一个单像素精灵并相应地对其着色,以一种极为低效的方式显示地形。这就给我留下了256x256个精灵,我当然想找到一种方法来渲染纹理,或者从这个数组中创建一个精灵或图像,而不必处理这么多的小精灵。有没有一种方法可以在Cocos2d(特别是Cocos2d-x)中实现这一点?我自己找不到任何东西。在cocos2d iphone中,您可以使用C++ Cocos2d:如何从2D数组生成纹理、精灵或图像?,c++,ios,cocos2d-iphone,cocos2d-x,C++,Ios,Cocos2d Iphone,Cocos2d X,我有一个256x256的双倍数组,代表一个高度图,我用它来随机生成地形。目前,我通过为阵列中的每个元素创建一个单像素精灵并相应地对其着色,以一种极为低效的方式显示地形。这就给我留下了256x256个精灵,我当然想找到一种方法来渲染纹理,或者从这个数组中创建一个精灵或图像,而不必处理这么多的小精灵。有没有一种方法可以在Cocos2d(特别是Cocos2d-x)中实现这一点?我自己找不到任何东西。在cocos2d iphone中,您可以使用[CCTexture2D initWithData:pixe
[CCTexture2D initWithData:pixelFormat:pixelsWide:pixelsHigh:contentSize:
创建纹理。然后使用[CCSprite spriteWithTexture:
创建精灵。cocos2d-x中应该有相应的方法
像这样为pixelFormatkCCTexture2DPixelFormat\u RGBA8888
创建数据缓冲区:
int width = 256;
int height = 256;
GLubyte *buffer = malloc(sizeof(GLubyte)*4*256);
for (int x=0; x<width; x++) {
for (int y=0; y<height; y++) {
// convert your doubles to pixels, here I just create a white pixel value
for (int i=0;i<4;i++) {
buffer[x*width*4+y*4+i]=255;
}
}
}
int-width=256;
整数高度=256;
GLubyte*buffer=malloc(sizeof(GLubyte)*4*256);
对于(intx=0;xThanks),这非常有用。我还发现这非常有用。