博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Cocos2d-x For WP8]ActionManager动作管理
阅读量:6967 次
发布时间:2019-06-27

本文共 1675 字,大约阅读时间需要 5 分钟。

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

运行的效果:

转载地址:http://ngisl.baihongyu.com/

你可能感兴趣的文章
第二十四周项目4-猴子选大王(约瑟夫问题)
查看>>
【转】深入浅出JavaScript之闭包(Closure)
查看>>
【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
查看>>
如何计算团队贡献
查看>>
Java Socket通信读取相关信息代码
查看>>
WebService三大基本元素 SOAP WSDL UDDI
查看>>
intelliJ idea运行新的test功能时,报错:class not found "....." empty test suite
查看>>
3.使用Maven构建Web项目
查看>>
Eclipse常用设置
查看>>
原生css3作响应式布局
查看>>
.net 中对于ToString的使用
查看>>
cygwin 安装apt-cyg命令
查看>>
linux fdisk
查看>>
HDU4625 JZPTREE——第二类斯特林数
查看>>
linux 排查page的状态问题
查看>>
初学者对编译原理是什么,作用,优点,
查看>>
Codeforces 556D - Case of Fugitive
查看>>
Codeforces 932D - Tree
查看>>
BZOJ 1010: [HNOI2008]玩具装箱toy
查看>>
django之路由分发
查看>>