ランダムな地形生成に使用する高さマップを表す256x256のdoubleの配列があります。現在、配列内の要素ごとに1つのピクセルスプライトを作成し、それに応じて色を付けることで、非常に非効率的な方法で地形を表示しています。これにより、256x256のスプライトが残ります。もちろん、非常に多くの小さなスプライトを処理するのではなく、この配列からテクスチャをレンダリングしたり、スプライトや画像を作成したりする方法を見つけたいと思います。Cocos2d(具体的にはCocos2d-x)でこれを達成する方法はありますか?私は自分で何も見つけることができませんでした。
質問する
2642 次
1 に答える
2
cocos2d-iphoneでは[CCTexture2D initWithData:pixelFormat:pixelsWide:pixelsHigh:contentSize:]
、テクスチャを作成するために使用できます。次に、を使用[CCSprite spriteWithTexture:]
してスプライトを作成します。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;
}
}
}
次に、上記の方法でスプライトを作成します。
于 2013-02-18T00:44:08.147 に答える