N2-Works
WEB企画・制作/システム開発 大阪拠点

RenderTextureのピクセルデータ操作

Cocos2d-xでN2NovelEngineの部分移植をしているのですが、スプライトのピクセル処理のやり方を備忘録として記事にしておきます。

cocos2d-x v3.3を使用しています。

Cocos2d-xではプライマリスクリーンに画像描画するには、RenderTextureを使うみたいですね。

ピクセル処理をするにはImageからデータを取得する必要があるみたいです。

// 描画済みのRenderTextureとする
RenderTexture *rt;

// ピクセルデータを取得
Image *img = rt->newImage();
unsigned char *data = img->getData();
int w = img->getWidth();
int h = img->getHeight();

// ピクセル処理
Color4B c;
for (int y = 0; y < h; y++) {
  for (int x = 0; x < w; x++) {
    // 各ピクセルのカラーを取得
    c.r = data[y * w * 4 + x * 4 + 0];
    c.g = data[y * w * 4 + x * 4 + 1];
    c.b = data[y * w * 4 + x * 4 + 2];
    c.a = data[y * w * 4 + x * 4 + 3];
  }
}

後は各ピクセルのカラーを調整すれば処理できます。

[cocos2d-x]2015年06月29日 14時21分56秒

※1000文字以内で入力してください

captcha

なるほど。

ID: 00001 Posted by 匿名希望 2016/09/12 18:08:35

TOP