动画裁剪的问题

for i = beginidx, endidx do
local tex = res.gettex2(string.format(filenameformat, i))
local frame = cc.SpriteFrame:createWithTexture(tex, cc.rect(0, 0, tex:getContentSize().width, tex:getContentSize().height))
frames[#frames + 1] = frame
end
local animation = cc.Animation:createWithSpriteFrames(frames, delay)

我用Animation:createWithSpriteFrames创建了一个动画组件,
然后我想给他裁剪一部分,就有类似游戏的动态血球,掉血的时候就会裁剪一点。
但是我不会裁剪,请大家指教一下

可以用个遮罩,修改宽度。

可以指点一下吗? 我是新手.不太明白遮罩是怎么做

最简单的办法,新建一个layer,设置剪裁,把动画放到这个layer上,去控制这个layer的宽高实现剪裁区域

ClippingNode 裁剪节点/模板剔除可以试试。
我之前实现过类似的功能,直接修改纹理坐标,再把contentSize/顶点坐标调小,不过要熟悉底层。自己搞了个SimpleSprite,动画播放过程中每一帧都会裁剪。用来切割闪电“子弹”

1
2

厉害啊, 能不能教一下怎么实现的

修改 纹理坐标 ,再把 contentSize/顶点坐标 调到合适的尺寸。
可以研究一下 Sprite::setTextureRect,但是我没弄成功,动画帧变化它又恢复了,自己搞了个SimpleSprite。

百度一下,clippingnode,他支持传入图片作为裁剪形状,也支持drawnode自己画裁剪的形状

用精灵的那个函数 setTextureRect