• [Cocos2d-x For WP8]ActionManager动作管理


        在Cocos2d-x里面可以通过CCActionManger类来管理动作的暂停和恢复,CCActionMessage是管理所有Action的单例,一般情况下并不直接使用这个单例,而是使用CCNode的接口,但是假如你想操作的目标不是CCNode的子类或者你想暂停/恢复动作就要使用到CCActionMessager。

    CCActionManger类是一个单例模式的类来的,我们可以通过下面的方式来获取动作管理类的实例:

        CCDirector* pDirector = CCDirector::sharedDirector();
        pDirector->getActionManager()->resumeTarget(pGrossini);

        那么在使用CCActionManger类来管理动作的暂停的逻辑必须放在在onEnter()方法里面,否则将不会起作用。

    下面演示当点击屏幕的时候,先暂停3秒钟,然后再播放动画:

    class ResumeTest : public cocos2d::CCLayer
    {
    public:
        ResumeTest();
        ~ResumeTest();
        virtual void onEnter();
        void resumeCat(float time);
    };
    
    void ResumeTest::onEnter()
    {
        CCLayer::onEnter();
        CCSize size = CCDirector::sharedDirector()->getWinSize();
        CCSprite* pGrossini = CCSprite::create("cat.png");
        addChild(pGrossini, 0, 1);
        pGrossini->setPosition( ccp(size.width * 0.5, size.height * 0.5) );
    
        pGrossini->runAction(CCScaleBy::create(5, 3));
    
        CCDirector* pDirector = CCDirector::sharedDirector();
        //暂停目标精灵的动作
        pDirector->getActionManager()->pauseTarget(pGrossini);
        pGrossini->runAction(CCRotateBy::create(10, 360));
    
        this->schedule(schedule_selector(ResumeTest::resumeCat), 3.0f);
    }
    
    
    void ResumeTest::resumeCat(float time)
    {
        this->unschedule(schedule_selector(ResumeTest::resumeCat));
        CCNode* pGrossini = getChildByTag(1);
        CCDirector* pDirector = CCDirector::sharedDirector();
        //运行目标精灵的动作
        pDirector->getActionManager()->resumeTarget(pGrossini);
    }

    在helloworld页面添加点击事件的处理:

    void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
    {
        CCScene * scene = new CCScene();
        CCLayer* pLayer =new ResumeTest();
        scene->addChild(pLayer);
        CCDirector::sharedDirector()->replaceScene(scene);
        scene->autorelease();
    }

    运行的效果:

  • 相关阅读:
    第八周作业
    第八周上机练习
    第七周作业
    第七次上机练习
    第六周作业
    4.9上机作业
    第五周作业
    第四次JAVA作业
    第四周作业
    第十六次作业
  • 原文地址:https://www.cnblogs.com/linzheng/p/3279811.html
Copyright © 2020-2023  润新知