Test5::Test5() { CCSprite* sp1 = CCSprite::create(s_pPathSister1); CCSprite* sp2 = CCSprite::create(s_pPathSister2); sp1->setPosition(ccp(100,160)); sp2->setPosition(ccp(380,160)); CCRotateBy* rot = CCRotateBy::create(2, 360); CCActionInterval* rot_back = rot->reverse(); CCAction* forever = CCRepeatForever::create( (CCActionInterval*)(CCSequence::create(rot, rot_back, NULL)) ); CCAction* forever2 = (CCAction*)(forever->copy()->autorelease()); forever->setTag(101); forever2->setTag(102); addChild(sp1, 0, kTagSprite1); addChild(sp2, 0, kTagSprite2); sp1->runAction(forever); sp2->runAction(forever2); schedule( schedule_selector(Test5::addAndRemove), 2.0f); } void Test5::addAndRemove(float dt) { CCNode* sp1 = getChildByTag(kTagSprite1); CCNode* sp2 = getChildByTag(kTagSprite2); //这里需要对计数加一,否则removeChild的时候会被释放掉 sp1->retain(); sp2->retain(); //false是表示不删除该节点的动作,true表示删除 removeChild(sp1, false); removeChild(sp2, true); //重新加载到层中 addChild(sp1, 0, kTagSprite1); addChild(sp2, 0, kTagSprite2); sp1->release(); sp2->release(); }