博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCFollow和ActionCallFunc
阅读量:5889 次
发布时间:2019-06-19

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

CCFollow动作,可以让一个节点跟随另一个节点做位移。
CCFollow经常用来设置layer跟随sprite,可以实现类似摄像机跟拍的效果
效果是精灵在地图上移动,地图也会跟着移动,但是精灵仍然是在整个界面的中心位置
CCSize s = CCDirector::sharedDirector()->getWinSize();        pSprite->setPosition(ccp(-200, s.height / 2));        CCActionInterval* move      = CCMoveBy::create(2, ccp(s.width * 3, 0));        CCActionInterval* move_back = move->reverse();        CCFiniteTimeAction* seq       = CCSequence::create(move, move_back, NULL);        CCAction* rep               = CCRepeatForever::create((CCActionInterval*)seq);        pSprite->runAction(rep);        this->runAction(CCFollow::create(pSprite, CCRectMake(0, 0, s.width * 2 - 100, s.height)));

//三个动作都绑定一个函数,三个动作同时执行,执行完后响应函数

void ActionCallFunc::onEnter(){    ActionsDemo::onEnter();    centerSprites(3);    CCFiniteTimeAction*  action = CCSequence::create(        CCMoveBy::create(2, ccp(200,0)),        CCCallFunc::create(this, callfunc_selector(ActionCallFunc::callback1)),         NULL);    CCFiniteTimeAction*  action2 = CCSequence::create(        CCScaleBy::create(2 ,  2),        CCFadeOut::create(2),        CCCallFuncN::create(this, callfuncN_selector(ActionSequence2::callback2)),         NULL);    CCFiniteTimeAction*  action3 = CCSequence::create(        CCRotateBy::create(3 , 360),        CCFadeOut::create(2),        CCCallFuncND::create(this, callfuncND_selector(ActionSequence2::callback3), (void*)0xbebabeba),         NULL);    m_grossini->runAction(action);    m_tamara->runAction(action2);    m_kathia->runAction(action3);}void ActionCallFunc::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 ActionCallFunc::callback2(CCNode* pSender){    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 ActionCallFunc::callback3(CCNode* pTarget, 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://sprix.baihongyu.com/

你可能感兴趣的文章
css 序
查看>>
DirectshowLib摄像头拍照的”未找到可用于建立连接的介质筛选器组合“ 解决办法...
查看>>
Django之用户认证组件
查看>>
python如何使用 os.path.exists()--Learning from stackoverflow ...
查看>>
wcf-1
查看>>
关于分区表的初探
查看>>
Xcode 6 下添加pch头文件
查看>>
三种简单排序
查看>>
curl 向远程服务器传输file文件
查看>>
[Java]读取文件方法大全
查看>>
【NopCommerce源码架构学习-二】单例模式实现代码分析
查看>>
[知识点]线段树
查看>>
动态规划大合集II
查看>>
MySQL忘记密码后重置密码(Mac )
查看>>
网站访问量统计案例
查看>>
web.xml中的url-pattern映射规则
查看>>
图像的下采样Subsampling 与 上采样 Upsampling
查看>>
SQL 数据类型
查看>>
支付宝接口调用,支付操作
查看>>
如何在ashx页面获取Session值 (仅供个人参考)
查看>>