cocos2d-2.1rc0-x-2.1.3中有一个好用的CCRemoveSelf

只是好用而已,并没有什么新奇的。2.1.3版本中提供的动作CCRemoveSelf简化了一些操作。

细看来,在DEMO TestCPP的ActionsTest.cpp中,ActionRemoveSelf类示例中说明了这个动作的用法,非常简单:

 CCFiniteTimeAction*  action = CCSequence::create(
        CCMoveBy::create( 2, ccp(240,0)),
        CCRotateBy::create( 2,  540),
        CCScaleTo::create(1,0.1f),
        CCRemoveSelf::create(),
        NULL);

    m_grossini->runAction(action);

用它可以实现在游戏的某个典型时刻屏幕上出现一个的动画,例如,出现玩家得分的数字小动画,作几个动作后立即消失,使可以参考上面的代码。

当然,ActionsTest.cpp中另一个类ActionCallFuncND也提供了传统的实现方法,稍微麻烦一些。相关代码如下:

 CCFiniteTimeAction* action = CCSequence::create(CCMoveBy::create(2.0f, ccp(200,0)),
        CCCallFuncND::create(this, callfuncND_selector(ActionCallFuncND::removeFromParentAndCleanup), (void*)true),
        NULL);

    m_grossini->runAction(action);

void ActionCallFuncND::removeFromParentAndCleanup(CCNode* pSender, void* data)
{
    bool bCleanUp = data != NULL;
    m_grossini->removeFromParentAndCleanup(bCleanUp);
}

也就是说,这种老方式下,临时性的精灵,需要我们自己调用CCCallFuncND回调函数并通过调用removeFromParentAndCleanup来自己去除。

你可能感兴趣的:(游戏,动画,action,create)