Animate Sprite using color in top to bottom effect

2019-08-29 12:39发布

问题:

How to spread color Top to Bottom using CCTintTo method in sprite. Because i am using CCTintTo method to spread color in sprite. But i want to look like spreading color in top to bottom. What to do for this types of animation.

Thanks in advance.

回答1:

Yes CCLayerGradient is what you are looking for.By the way what technique you are using for coloring.If you are using CGContextSetRGBFillColor method to fill the sprite color then it would be tricky but if you are using images to fill color then nice sequence of images plist can be used to produce animation which will give you the exact effect you are looking for.

Take the sequence of images and animate them using CCSpriteBatchNode otherwise if you want to use RGB colors to fill sprite then you have to look for gradient effect.



回答2:

If you are using cocos2d 2.0+, you could write a shader to do this, and set the shaderProgram property of the sprite. Not that hard, follow the examples in the distribution. My first shader took me .5 work days to get to work, and maybe another .5 workday to properly integrate that technique properly in my overall software architecture. g'luck :).

Look here for an introduction to shaders, play with it in a side project until you are comfortable to integrate in your main trunk.



回答3:

That's not possible with color tinting. Changing a node's color property or using the tint actions will only tint the entire sprite with a single color, there will be no gradient.

You would have to custom draw the sprite and apply/adapt the gradient rendering code from CCLayerGradient.