[ IOS-Cocos2d-x 游戏开发] - cocosBuilder 开发之三

[ IOS-Cocos2d-x 游戏开发] - cocosBuilder 开发之三


CCBFileButtons->CCControlEvent ,Animations



1 . CCBFile连接 ,在菜单工具里,添加一个ccb,直接上图,实际没有什么



2 . Buttons->CCControlEvent 的各种情况

Buttons这块主要是研究了CCControlEvent的各种情况. 我只贴出核心代码.

SEL_CCControlHandler ButtonsLayer::onResolveCCBCCControlSelector(cocos2d::CCObject *pTarget, const char *pSelectorName)

{

    CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onBtnClicked", ButtonsLayer::onBtnClicked);

    return NULL;

}


void ButtonsLayer::onBtnClicked(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEvent pCCControlEvent)

{

    switch (pCCControlEvent) {

        case CCControlEventTouchCancel:

            this->mEventLabelBMFont->setString("Cancel");

            break;

        case CCControlEventTouchDown:

            this->mEventLabelBMFont->setString("Touch Down");

            break;

        case CCControlEventTouchDragEnter:

            this->mEventLabelBMFont->setString("Drag Enter");

            break;

        case CCControlEventTouchDragExit:

            this->mEventLabelBMFont->setString("Drag Exit");

            break;

        case CCControlEventTouchDragInside:

            this->mEventLabelBMFont->setString("Drag Inside");

            break;

        case CCControlEventTouchDragOutside:

            this->mEventLabelBMFont->setString("Drag OutSide");

            break;

        case CCControlEventTouchUpInside:

            this->mEventLabelBMFont->setString("Up Inside");

            break;

        case CCControlEventTouchUpOutside:

            this->mEventLabelBMFont->setString("Up Outside");

            break;

        default:

            break;

    }

}



3 . Animations制作,比较麻烦的是ccb的各Timeline

void MainScene::onAnimations(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEvent pCCControlEvent)

{

    const char * pCCBFileName = "ccb/Animations.ccbi";

    const char * pCCNodeName = "AnimationsLayer";

    cocos2d::extension::CCNodeLoader * pCCNodeLoader = AnimationsLayerLoader::loader();

    

    CCScene *scene = CCScene::create();

    

    CCNodeLoaderLibrary *lib = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();

    

    lib->registerCCNodeLoader("HeaderLayer", HeaderLayerLoader::loader());

    

    if (pCCNodeName!=NULL && pCCNodeLoader!=NULL)

    {

        lib->registerCCNodeLoader(pCCNodeName, pCCNodeLoader);

    }

    

    CCBReader *reader = new CCBReader(lib);

    CCNode *node = reader->readNodeGraphFromFile(pCCBFileName, this);

    reader->autorelease();

    

    if (node != NULL)

    {

//获取AnimationManager ,并传递给AnimationsLayer

        ((AnimationsLayer*)node) ->setAnimationManager(reader->getAnimationManager());

        

        scene->addChild(node);

    }

    

    this->mTitleLabelTTF->setString(pCCBFileName);

    

    CCDirector::sharedDirector()->pushScene(scene);

}



AnimationsLayer.cpp

void AnimationsLayer::setAnimationManager(cocos2d::extension::CCBAnimationManager *pAnimationManager)

{

    CC_SAFE_RELEASE_NULL(mAnimationManager);

    mAnimationManager = pAnimationManager;

    CC_SAFE_RETAIN(mAnimationManager);

}



CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onIdle", AnimationsLayer::onIdle);

void AnimationsLayer::onIdle(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEvent pCCControlEvent)

{

    //利用动作名字进行播放动作

    this->mAnimationManager->runAnimationsForSequenceNamedTweenDuration("Idle", 0.3f);

}





总结:
还有一个粒子没列出代码,只需把ccbi添加到代码里就可以了!

先整到这了,以后遇到一些特殊的,在一一列出




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值