Creator 2.1.3 Sprite 采用自定义的mateiral shader 对图片部分区域的进行渲染。如点击任务头像,头像区域变了个颜色,在点击手臂的时候,手臂也变化颜色。
遇到个问题:
点击头像,头像区域颜色变了;再点击手臂的时候,手臂的颜色是变了。但是头像颜色又变回去了,不知道应该怎么处理。
void paintcolor()
{
vec2 position = v_uv0;
vec2 touchedPosition = v_touched_position;
vec4 color = vec4(v_touched_color.r/255.0,v_touched_color.g/255.0,v_touched_color.b/255.0,1.0); ;
vec4 colorTouched = texture2D(masktexture,touchedPosition);
vec4 thisColor = texture2D(masktexture,position);
//////////////////// 点击位置上色测试
/*
vec2 offset = position - touchedPosition;
if(abs(offset.x) <= 0.1 && abs(offset.y) <= 0.1)
{
gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
return;
}
*/
if(touchedPosition.x == 0.0 && touchedPosition.y == 0.0)
{
color = texture2D(texture, v_uv0);
gl_FragColor = color;
return;
}
else
{
// gl_FragColor = color;
// return;
if(vec3equal(thisColor.rgb, colorTouched.rgb))
{
gl_FragColor = color;
return;
}
else
{
color = texture2D(texture, v_uv0);
gl_FragColor = color;
return;
}
}
//////////////// test end
}