zoukankan      html  css  js  c++  java
  • [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();
    }

    运行的效果:

  • 相关阅读:
    CAN总线学习资料
    VMware虚拟机 硬盘空间不足 磁盘大小调整方案
    郭天祥-S3C2440开发板Linux2.6.31移植教程
    MFC串口编程——使用标准SerialCom类
    Luogu P2602 [ZJOI2010]数字计数 //数位DP
    luogu P1896 [SCOI2005] 互不侵犯 //状压DP
    中北大学ACM 5/12 T6 CSY的幸福
    P2473 || SCOI2008 奖励关 //状压&&期望DP
    请让蝴蝶爬满全身
    【图论】二分图 // 未完成 =、=
  • 原文地址:https://www.cnblogs.com/linzheng/p/3279811.html
Copyright © 2011-2022 走看看