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等函数
实现暂停/重启目标的动作。
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等函数
实现暂停/重启目标的动作。