ユーザーが形状を操作できるプラットフォームを持つ 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);