cocos2d-x学习日志(4) -- CCCallFunc系列函数的应用

转载请标明:转载自【小枫栏目】,博文链接http://blog.csdn.net/my183100521/article/details/10231311

一、简介


cocos2d-x常用回调函数有:CCCallFunc,CCCallFuncN,CCCallFuncND
它们之间区别:

CCCallFunc:执行对应的回调函数,其中回调函数不可带参数

CCCallFuncN:执行对应的回调函数,其中回调函数带一个参数,其中参数CCNode* sender,被传递到run这个action的对象中。

CCCallFuncND:和CCCallFuncN类似,不同的是(void*)agr0,这个是传给回调函数的参数。

二、实现代码

HelloWorldScene.cpp
    CCSprite *RoleMan = CCSprite::create("Role.png");
    
    RoleMan->setPosition(ccp(60, size.height/2));
    
    this->addChild(RoleMan);
    RoleMan->setVisible(false);
    
    CCFiniteTimeAction* action = CCSequence::create(
         CCPlace::create(ccp(200,200)),
         CCShow::create(),
         CCMoveBy::create(1, ccp(100,0)),
                          CCCallFunc::create(this,callfunc_selector(HelloWorld::callback1)),
                          CCCallFuncN::create(this,callfuncN_selector(HelloWorld::callback2)),
                          CCCallFuncND::create(this,callfuncND_selector(HelloWorld::callback3),(void*)0xbebabeba),
                          NULL);
    
    RoleMan->runAction(action);
回调方法
void HelloWorld::callback1()
    {
        CCSize s = CCDirector::sharedDirector()->getWinSize();
        CCLabelTTF *label = CCLabelTTF::create("callback 1 called", "Marker Felt", 16);
        label->setPosition(ccp( s.width/4*1,s.height/2));
        
        addChild(label);
    }
                                                    
void HelloWorld::callback2(CCNode* sender)
    {
        CCSize s = CCDirector::sharedDirector()->getWinSize();
        CCLabelTTF *label = CCLabelTTF::create("callback 2 called", "Marker Felt", 16);
        label->setPosition(ccp( s.width/4*2,s.height/2));
        
        addChild(label);
    }
                                                    
void HelloWorld::callback3(CCNode* sender, void* data)
    {
        CCSize s = CCDirector::sharedDirector()->getWinSize();
        CCLabelTTF *label = CCLabelTTF::create("callback 3 called", "Marker Felt", 16);
        label->setPosition(ccp( s.width/4*3,s.height/2));
        
        addChild(label);
    }

三、效果图






引用博文:http://blog.csdn.net/yanghuiliu/article/details/6933277


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热血枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值