如何在cocos2d中创建图像蒙版并为其渲染纹理

时间:2014-08-07 13:07:11

标签: opengl-es cocos2d-iphone textures image-masking

我正在cocos2d v3中编写一个游戏,其中的平台的形状可以由用户操纵。我知道平台边缘的每个点,并且想要在平台的形状内渲染纹理,使其看起来很坚固。 我知道我需要使用OpenGl或CCrender纹理,但我是一个完全的初学者,只能用文字表达我的想法,而不是代码。我不知道这些是否有效。请举一个我应该做的例子来帮助我。 以下是我的想法:

[1] - 要将形状着色为白色,并在其下面放置一个ccrednertexture并将纹理渲染到渲染纹理 - 然后使用混合函数仅允许渲染纹理上的白色下方显示的内容。

[2]使用形状周围的顶点做这样的事情:

CCRenderBuffer buffer = [renderer enqueueTriangles:2 andVertexes:4 withState:_lightRenderState globalSortOrder:0];
                CCRenderBufferSetVertex(buffer, 0, LightVertex(projection, GLKVector2Make(pos.x - radius, pos.y - radius), GLKVector2Make(0, 0), color4));
                CCRenderBufferSetVertex(buffer, 1, LightVertex(projection, GLKVector2Make(pos.x - radius, pos.y + radius), GLKVector2Make(0, 1), color4));
                CCRenderBufferSetVertex(buffer, 2, LightVertex(projection, GLKVector2Make(pos.x + radius, pos.y + radius), GLKVector2Make(1, 1), color4));
                CCRenderBufferSetVertex(buffer, 3, LightVertex(projection, GLKVector2Make(pos.x + radius, pos.y - radius), GLKVector2Make(1, 0), color4));
                CCRenderBufferSetTriangle(buffer, 0, 0, 1, 2);
                CCRenderBufferSetTriangle(buffer, 1, 0, 2, 3);

0 个答案:

没有答案
相关问题