0

スプライトをマスクする必要があります。私はこのチュートリアルに従いました:http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0、しかし問題は、単一のpngファイルからではなくスプライトを作成するときですが、 「initWithSpriteFrameName」メソッドでスプライトシートから。

マスク ファイルは、小さなスプライトのテクスチャではなく、大きなスプライト シートのテクスチャに適用されます。

どうすればこれを修正できますか?

乾杯、マルシン

4

1 に答える 1

2

ここでの問題は、スプライトとマスクに同じtex座標が使用されていることです。

アトラスにマスクを合わせるために、頂点ごとにさらに2つのUV座標を送信する必要があります。

これらのマスク座標に対して、別の変化するv_maskTexCoordを作成し、次にこれを行う場所を作成します。

vec4 texColor = texture2D(u_texture, v_texCoord);
vec4 maskColor = texture2D(u_mask, v_texCoord);

に変更します

vec4 texColor = texture2D(u_texture, v_texCoord);
vec4 maskColor = texture2D(u_mask, v_maskTexCoord);
于 2012-10-28T16:01:47.980 に答える