Animate 动画 播放完后如何自动删除

Animate 动画 播放完后如何自动删除

:12:

:9:来个人。。。
以前 播放完 动画 后都是自动 删除 的现在还留个影在那里 多难看 啊。。。。:5:

:7:看不懂 配个图毫不.要不动画结束之后animate->isdone remove掉?

:9: 就是我把帧动画 全部播放完后。
本应该消失 的,可是 他并没有消失 还留了最后一帧的那张图片在那里。

我也遇到过,怪物死亡之后闪烁3次结果尸体还在.
建议直接遍历然后remove掉.或者是多加载一张全空的图片(不可取)
我也是新手懂得不是很多

播放怪物死亡动作的时候设置个回调函数,然后调用父节点的removeFromParent就可以清除了

:12: 我现在 是新建个节点。在新节点上运行,运行完后就删除 。

总感觉 这会浪费 内存= =。

RemoveSelf动作的可以帮到你

播放Animate是用之前设置的一个类似容器性质的Sprite来播放的,你这个问题多半是没有移除这个sprite

如果想移除掉这个Sprite,在runaction的Seq里最后添一个CCRemoveSelf就行了, RemoveSelf效果和设置一个回调

然后在回调里removeFromParent效果一样。

:12: 那我知道 了。。。 看来是一定要用个容器(Sprite) 保存着 动画 运行完后就删除 这个容器。 消耗两个 Sprite

我这贴所说 的意思是 我只想 用一个容器 来执行动画 但执行完动画 后就删除 动画 但不删除 该容器。(因为这个容器我还有用。) 消耗一个 Sprite

:5: 对了 问个问题 怎么把一张图片剪成圆形 用clipnode 。。。不行。

可以啊 :7:clipnode

:9: 我剪半天 。。。还是剪不出我要的效果。。。我要的效果很简单就只要剪成圆形就可以 然后把这个 圆形 加入到一个按钮层中。并不要影响到按钮的显示。

:14:解决了 网上找到了个更好 的

CCSprite * UnivCoreTest::maskedSprite(CCSprite *textureSprite)
{
CCSprite * maskSprite = CCSprite::create(“circle_mask.png”); //根据这张图片的形状剪。
CCRenderTexture * renderTexture = CCRenderTexture::create(maskSprite->getContentSize().width, maskSprite->getContentSize().height);

maskSprite->setPosition(ccp(maskSprite->getContentSize().width / 2, maskSprite->getContentSize().height / 2));  
textureSprite->setPosition(ccp(textureSprite->getContentSize().width / 2, textureSprite->getContentSize().height / 2));  

maskSprite->setBlendFunc((ccBlendFunc){GL_ONE, GL_ZERO});  
textureSprite->setBlendFunc((ccBlendFunc){GL_DST_ALPHA, GL_ZERO});  
  
renderTexture->begin();  
maskSprite->visit();  
textureSprite->visit();  
renderTexture->end();  

CCSprite * retval = CCSprite::createWithTexture(renderTexture->getSprite()->getTexture());  
retval->setFlipY(true);  
return retval;  

}