ccanimation学习笔记

CCActionInterval *actionTo = CCSkewTo::create(2, 37.2f, -37.2f);


CCRotateTo* actionTo = CCRotateTo::create(2, 37.2f, -37.2f);
CCRotateTo* actionTo = CCRotateTo::create(2, 37.2f);


曲线运动
CCCardinalSplineBy *action2 = CCCardinalSplineBy::create(3, array, 5);
绘制曲线
kmGLPushMatrix();
kmGLTranslatef(50, 50, 0);
ccDrawCardinalSpline(m_pArray, 0, 100);
kmGLPopMatrix();


tension:0~1:向外扩张
1:直线
1~n:向内弯曲




贝塞尔曲线(注意,当使用CCBezierTo时,ccBezierConfig的点都是绝对坐标点。但如果使用CCBezierBy,ccBezierConfig的点都是相对坐标点。)
设置参数
ccBezierConfig bezier2;
bezier2.controlPoint_1 = ccp(100, s.height/2);
bezier2.controlPoint_2 = ccp(200, -s.height/2);
bezier2.endPosition = ccp(240,160);


CCActionInterval*  bezierTo1 = CCBezierTo::create(2, bezier2);  




fadein动作,要先设置透明度为0


ccanimation有两种
1.Manual animation(animation->addSpriteFrameWithFileName(szName);)
2.File animation(plist)




CCPlace 效果类似于setPosition(ccp(x, y))。


CCCallFunc不可带参数 CCCallFuncN带一个参数 CCCallFuncND带两个参数


ccrepeatforever会让起点和终点自动重合


CCActionInterval*  orbit3 = CCOrbitCamera::create(2,1, 0, 0, 180, 90, 0);
参数分别为旋转的时间,起始半径,半径差,起始z角,旋转z角差,起始x角,旋转x角差,




CCFollow动作,可以让一个节点跟随另一个节点做位移。
CCFollow经常用来设置layer跟随sprite,可以实现类似摄像机跟拍的效果
效果是精灵在地图上移动,地图也会跟着移动,但是精灵仍然是在整个界面的中心位置


通常默认的动作执行对象是调用runAction的对象,而CCTargetedAction可以改变动作执行对象。
CCTargetedAction* t = CCTargetedAction::create(sprite2, moveto);
sprite->runAction(CCSequence::create(moveto, t, moveto, NULL));
sprite先moveto,然后sprite2执行moveto,最后sprite执行moveto。
CCTargetedAction *t1 = CCTargetedAction::create(m_kathia, jump2);


暂停和恢复动画
CCSet *m_pPausedTargets;
暂停
m_pPausedTargets = director->getActionManager()->pauseAllRunningActions();
恢复
director->getActionManager()->resumeTargets(m_pPausedTargets);


runaction的前提是,精灵添加到了场景中。所以就算sprite的runaction写在了前面,运动还是会在addchild的那一刹那开始运动。




特殊3d效果
CCDirector::sharedDirector()->setDepthTest(false);
effect = Shaky3DDemo::create(t);
node->runAction(effect);
清除效果
if ( node->numberOfRunningActions() == 0 && node->getGrid() != NULL)
        s2->setGrid(NULL);;


actionManager
首先获得导演实例,然后通过调用getActionManager获得动作管理,再通过pauseTarget和resumeTarget等函数
实现暂停/重启目标的动作。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值