0

我需要屏蔽一个精灵。我遵循了本教程:http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0,但是问题是当我不是从单个 png 文件创建精灵时,而是从带有“initWithSpriteFrameName”方法的精灵表。

蒙版文件正在应用于大精灵表的纹理,而不是小精灵的纹理。

任何线索我该如何解决这个问题?

干杯,马尔辛

4

1 回答 1

2

这里的问题是相同的tex坐标被用于你的精灵和你的面具。

您需要为每个顶点再发送两个 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 回答