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();
    }

    运行的效果:

  • 相关阅读:
    delphi xe10 FMX 启动参数
    delphi xe6 JSON 测试
    oracle实现http请求,oracle发送http请求。
    ORACLE存储过程调用Web Service
    新搭建的iis服务器,运行网站报 System.BadImageFormatException:未能加载文件或程序集”....“或它的某一个依赖项。
    c#的http请求工具类核心代码
    vue-cli3 取消关闭eslint 校验代码
    quartz.net数据库持久化教程
    sql备份一张表的数据
    iis 长期无访问导致定时任务不执行的解决方案
  • 原文地址:https://www.cnblogs.com/linzheng/p/3279811.html
Copyright © 2011-2022 走看看