2

私の目標は、テクスチャ/スプライトのピクセルに直接書き込み、ゲームの詳細を更新できるようにすることです。

C++ を使用して Cocos2d-x でこれを行うことに成功しました (以下のサンプル コード)。問題は、「Javascript で同等のことを行うにはどうすればよいか」です。

//C++ WORKS:
board_texture= *sprite->getTexture();

// initialize pixels (array of GLubyte)
for (i=0 ; i<num_pix; i++){
    pixels[i] = (GLubyte) 0;
}

// editing colors at specific positions:
            pixels[i]=(GLubyte) 255; // r
            pixels[i+1]=(GLubyte) 0; // g
            pixels[i+2]=(GLubyte) 0;// b
            pixels[i+3]=(GLubyte) 255; // a

    board_texture.updateWithData(pixels,0,0,board_w,board_h);
    sprite->setTexture(&board_texture);

これは iPad で非常に高速に実行され、400x400 テクスチャを 60FPS で簡単に更新します。

ただし、Cocos2d-JS を調べたところ、「updateWithData」に相当する機能は見つかりませんでした。texture2D をローカル変数に入れることができましたが、ピクセルを更新する方法が見つかりません (まだ)

//JS does NOT work
var t;
t= this.map_sprite.getTexture(); // OK
// but does NOT allow me to updateWithData 
t.setTexture(pixels) // fails, with Invalid Native Format.  What's the proper format then? 

なんで?Cocos2d の開発者は、Cocos IDE で JS がサポートされていないことから明らかなように、Javascript (Cocos2d-js) ほど C++ は将来サポートされないと言っています。だから、私は始めたばかりなので、C++ではなくJSでやるべきだと思いました。

4

0 に答える 0