这真是一个非常实用的方法,打个比方,一颗流星,从界面左上角,滑到屏幕中间,然后消失,实用这种方法变得尤为方便。
实现这个删除自身,需要使用第4篇博文中的提到的回调函数的方法,如果需要了解下可以看看
链接:第三篇博文的链接
废话不多说 上代码
auto spStart=Sprite::create("Start.png");
spStart->setPosition(Vec2(ScreenWidth,ScreenHeight));//这两个值要提前声明并定义出来,大家自己弄下吧,就是屏幕快和高
spStart->setTag(1001);
this->addChild(spStart);
spStart->runAction(Sequence::create(MoveTo::create(Vec2(ScreenWidth/2,ScreenHeight/2)),CallFunc::create(CC_CALLBACK_0(GameScene::deleteStart,this)),null));
GameScene 就是你代码的所在类了。自己改一下吧
最后在类中添加一个删除自身的方法
void GameScene::deleteStart()
{
dynamic_cast<Sprite *>(this->getChildByTag(1001))
->removeFromParentAndCleanup(true);
}
dynamic_cast这个东西是用来强制类型转换的,大家可以百度下我日后也会整理出来一片文章专门介绍各种转换类型的