作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 256x256 的 double 组,代表我用于随机地形生成的高度图。目前,我通过为数组中的每个元素创建一个像素 Sprite 并相应地为其着色,以一种极其低效的方式显示地形。这给我留下了 256x256 Sprite ,我当然想找到一种方法来渲染纹理或从这个数组创建 Sprite 或图像,而不是必须处理这么多小 Sprite 。有没有办法在 Cocos2d(特别是 Cocos2d-x)中实现这一点?我自己找不到任何东西。
最佳答案
在 cocos2d-iphone 中,您可以使用 [CCTexture2D initWithData:pixelFormat:pixelsWide:pixelsHigh:contentSize:]
来创建纹理。然后使用 [CCSprite spriteWithTexture:]
创建 Sprite 。 cocos2d-x中应该有相应的方法
像这样为 pixelFormat kCCTexture2DPixelFormat_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;
}
}
}
然后用上面提到的方法创建你的 Sprite 。
关于c++ - Cocos2d : How do I generate a texture, sprite 或二维数组中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927737/
我是一名优秀的程序员,十分优秀!