在Cocos2d-js中设置像素 - 如何?

时间:2014-12-09 06:38:07

标签: texture2d cocos2d-js

我的目标是直接写入纹理/精灵中的像素,以便能够更新游戏的细节。

我在使用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上以60FPS轻松更新400x400纹理时运行速度非常快。

然而,我查看了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的开发人员说,C ++在未来不像Javascript(Cocos2d-js)那样受支持,这可以从Cocos IDE中缺乏JS支持中得到证明。所以,既然我刚开始,我想,我应该用JS而不是C ++来做。

0 个答案:

没有答案