我需要屏蔽一个精灵。我遵循了本教程:http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0,但是问题是当我不是从单个 png 文件创建精灵时,而是从带有“initWithSpriteFrameName”方法的精灵表。
蒙版文件正在应用于大精灵表的纹理,而不是小精灵的纹理。
任何线索我该如何解决这个问题?
干杯,马尔辛
我需要屏蔽一个精灵。我遵循了本教程:http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0,但是问题是当我不是从单个 png 文件创建精灵时,而是从带有“initWithSpriteFrameName”方法的精灵表。
蒙版文件正在应用于大精灵表的纹理,而不是小精灵的纹理。
任何线索我该如何解决这个问题?
干杯,马尔辛
这里的问题是相同的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);