2014-09-25 116 views
1

如何从纹理中读取[x,y]处的像素颜色(在cocos2d-js中)?如何从纹理中读取像素的颜色(cocos2d-js)?

+0

你看了一下:http://discuss.cocos2d-x.org/t/getpixel-setpixel-from-cctexture2d/685?为什么你想读取像素的颜色? – Simon 2014-09-30 07:00:00

+0

有一种技术可以从图像加载游戏关卡。我想知道在cocos2d-js中是否有可能。 – 2014-09-30 08:07:55

+0

为什么你不想使用支持的TiledMaps? http://www.cocos2d-x.org/docs/tutorial/framework/html5/parkour-game-with-javascript-v3.0/chapter7/en – Simon 2014-09-30 09:07:11

回答

0

我认为在cocos2d框架中没有这样的支持,如果有人可以这样做,它可能会是一个更好的答案。

但是,cc.Texture2D确实有getHtmlElementObj()函数。现在,这个函数可以返回一个图像元素或一个画布元素。如果它返回一个图像,你需要像它一样制作一个画布;

var canvas = $('<canvas/>')[0]; 
canvas.width = img.width; 
canvas.height = img.height; 
canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height); 

一旦你有一个画布元素,你应该能够得到一个像素的颜色:

var data = canvas.getContext('2d').getImageData(x, y, 1, 1).data; 
var color = new Color([data[0], data[1], data[2]]); 

和公正的良好措施,这里是如何测试是否getHtmlElementObj()返回图像:

function isImage(i) { 
    return i instanceof HTMLImageElement; 
} 

祝你好运!

+0

P.S.您的答案只适用于画布渲染模式 – musikov 2014-10-27 14:58:46