0

我正在用 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);
4

0 回答 0