我需要掩饰一个精灵。我遵循了本教程:http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0,但问题是当我创建精灵不是来自单个png文件,而是来自sprite表的“initWithSpriteFrameName”方法。
掩码文件正在应用于大精灵表的纹理,而不是小精灵的纹理。
任何线索如何解决这个问题?
干杯, 马尔钦
答案 0 :(得分: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);