cocos2dx 3.x(常见的46种动作)

来源:互联网 发布:迅捷聊天记录恢复软件 编辑:程序博客网 时间:2024/05/21 10:24
  1     Sprite * sp= Sprite::create("Icon.png");  2     sp->setPosition(Vec2(150, 150));  3     addChild(sp,0,922);  4       5     //    Action动作  6       7     // MoveBy  创建一个移动的动作   参数1:移动到目标坐标所需的时间 参数2:目标坐标    支持reverse 可以获取其反向动作  8     //     MoveTo  一样的  9     ActionInterval * moveBy = MoveBy::create(5,Vec2(300, 100)); 10     ActionInterval * actionmoveback= moveBy->reverse(); 11     sp->runAction(actionmoveback); 12      13     //     ScaleTo   作用:创建一个缩放的动作 14     //    参数1:达到缩放大小所需的时间 15     //    参数2 :缩放的比例 16     ActionInterval * scaleto = ScaleTo ::create(2, 2); 17     sp->runAction(scaleto); 18      19     //     ScaleBy  作用:创建一个缩放的动作 20     //    参数1:达到缩放大小的所需时间  参数2:缩放比例 21     ActionInterval * scaleby = ScaleBy::create(2, 2); 22     ActionInterval * actionbyback = scaleby->reverse(); 23     sp->runAction(actionbyback); 24      25     //     RotateTo 26     //    作用创建一个旋转的动作 27     //    参数1:旋转的时间  参数2:旋转饿角度  0 - 360 28     ActionInterval * rotateto = RotateTo::create(2, 90); 29     sp->runAction(rotateto); 30      31     //   SkewTo 32     //   作用创建一个倾斜的动作 33     //    参数1:倾斜到特定角度所需的时间 34     //    参数2:x轴的倾斜角度 35     //    参数3:y轴的倾斜角度 36     ActionInterval * skewto = SkewTo::create(2, 10, 10); 37     sp->runAction(skewto); 38      39     //     JumpTo 40     //    作用:创建一个跳的动作 41     //    参数1:跳到目标动作位子的所需时间 42     //    参数2:目标位置 43     //    参数3:跳的高度 44     //    参数4跳到目标位置的次数 45     ActionInterval* jumpto = JumpTo ::create(2, Vec2(300, 200), 50, 4 ); 46     sp->runAction(jumpto); 47      48     //     JumpBy 49     //    作用:创建一个跳的动作 50     //    参数1:跳到目标动作位子的所需时间 51     //    参数2:目标位置 52     //    参数3:跳的高度 53     //    参数4跳到目标位置的次数 54     //    这个支持方向动作reverse 55     ActionInterval * jumpby = JumpBy ::create(3, Vec2(300, 200), 50, 4); 56     ActionInterval * ac= jumpby->reverse(); 57     sp->runAction(ac); 58  59  60  61     //         Bezier 62     //     BezierConfig结构体 63      BezierConfig bezierCon; 64     bezierCon.controlPoint_1=Vec2(200, 150);//控制点1 65     bezierCon.controlPoint_2=Vec2(200, 160);//控制点2 66     bezierCon.endPosition =Vec2(340, 100);// 结束位置 67     //BezierTo 68     //        创建一个贝塞尔曲线运动的动作 69     //        参数1:贝塞尔曲线运动的时间 70     //        参数2 : BezierConfig结构体 71     ActionInterval * action = BezierTo::create(2, bezierCon); 72     ActionInterval * action1 = BezierBy::create(3, bezierCon);//支持反向 73     ActionInterval * action2 = action->reverse(); 74     sp->runAction(action1); 75      76      77     //FadeIn 78     //作用:创建一个渐变出现的动作 79     //参数是时间 80     ActionInterval * fadein = FadeIn::create(2); 81     sp->runAction(fadein); 82      83      84     //     FadeOut 85     //    作用:创建一个渐变消失的动作 86     //    参数是时间 87     ActionInterval * fadeout = FadeOut::create(2); 88     sp->runAction(fadeout); 89      90      91     // TintTo 92     //    作用:创建一个色彩变化的消失动作 93     //    参数1:色彩变化的动作 94     //    参数2 :红色分量 95     //    参数3:蓝色分量 96     ActionInterval * tinto = TintTo ::create(3, 255, 255, 0); 97     sp->runAction(tinto); 98      99     100     //     TintBy101     //    作用:创建一个色彩变化的出现动作102     //    参数1:色彩变化的动作103     //    参数2 :红色分量104     //    参数3:蓝色分量   但是家了reverse就是 反向的105     ActionInterval * tintby = TintBy::create(3, 0, 255, 255);106     ActionInterval * tintby1 = tintby->reverse();107     sp->runAction(tintby1);108     109     //     Blink110     //    作用 :创建一额闪烁的动作111     //    参数1:闪烁完成的时间112     //    参数2:闪烁的次数113     114     ActionInterval * blink = Blink ::create(3, 10);115     sp->runAction(blink);116     117     118     119     //     DelayTime120     //    创建一个延迟的动作121     //    参数  延迟的时间122     ActionInterval * delaytime = DelayTime::create(3);123     sp->runAction(delaytime);124     125     //     OrbitCamera126     //    作用:创建一个球面坐标轨迹进行旋转的动作127     //    参数1 : 旋转轨迹的时间128     //    参数2 :起始半径129     //    参数3:半径差130     //    参数4:起始z角131     //    参数5:旋转z角的差132     //    参数6:起始x角133     //    参数7:旋转x角的差134     ActionInterval * orbitcameraa = OrbitCamera::create(3, 10, 0, 45, 180, 90, 0);135     sp->runAction(orbitcameraa);136     137     138     //     CardinalSpline139     //    作用:创建数组  点的数组140     PointArray * array = PointArray::create(20);141     array->addControlPoint(Vec2(0,0));142     array->addControlPoint(Vec2(210,0));143     array->addControlPoint(Vec2(210,240));144     array->addControlPoint(Vec2(0,160));145     array->addControlPoint(Vec2(0,0));146     //    CardinalSplineTo147     //    作用:创建一个样条曲线轨迹的动作148     //    参数1:完成轨迹所需的时间149     //    参数2:控制点的坐标数组150     //    拟合度  其值= 0 路径最柔和151     ActionInterval  * CardinalSplineTo=CardinalSplineTo::create(3, array, 0);152     sp->runAction(CardinalSplineTo);153     154     155     //    CardinalSplineBy156     //    作用:创建一个样条曲线轨迹的动作157     //    参数1:完成轨迹所需的时间158     //    参数2:控制点的坐标数组159     //    拟合度  其值= 0 路径最柔和160     ActionInterval * CardinalSplineBy = CardinalSplineBy::create(3, array, 0);161     sp->runAction(CardinalSplineBy);162     163     //    CatmullRomTo   CatmullRomBY164     //    作用:创建一个样条插值轨迹165     //    参数1:完成轨迹的时间166     //    参数2:控制点的数组坐标167     ActionInterval * catmullRomTo = CatmullRomTo::create(3, array);168     sp->runAction(catmullRomTo);169     170     //    Follow171     //    作用:创建一个跟随动作172     //    参数1:跟随的目标对象173     //    跟随范围,离开范围就不再跟随174     //创建一个参照物spT175     Sprite * spt = Sprite::create("Icon.png");176     spt->setPosition(Vec2(420,40));177     addChild(spt);178     sp->runAction(MoveTo::create(3, Vec2(940,sp->getPositionY())));179     180     Follow * follow = Follow::create(sp,Rect(0, 0, 960, 320));181     this-> runAction(follow);182     183     //     EaseBounceIn184     //    目标动作185     ActionInterval* move = MoveTo::create(3, Vec2(300, sp->getPositionY()));186     ////    让目标动作缓慢开始187     ////    参数:目标动作188     ActionInterval * EaseBounceIn = EaseBounceIn::create(move);189     sp->runAction(EaseBounceIn);190     191     //    EaseBounceOut192     //    作用:让目标动作赋予反弹力,且以目标动作结束位子开始反弹193     //    参数目标动作194     ActionInterval * easeBounceOut = EaseBounceOut ::create(move);195     sp->runAction(easeBounceOut);196     197     //    EaseBounceInOut198     //    作用:让目标动作赋予反弹力,且以目标动作起始与结束位子开始反弹199     ActionInterval * easeBounceInOut= EaseBounceInOut::create(move);200     sp->runAction(easeBounceInOut);201     202     //   EaseBackIn203     //    作用:让目标动作赋予回力 , 且以目标动作起点位置作为回力点204     //    参数:目标动作205     ActionInterval * easeBackIn = EaseBackIn::create(move);206     sp->runAction(easeBackIn);207     208     //    EaseBackOut209     //    作用:让目标动作赋予回力 , 且以目标动作终点位置作为回力点210     //    参数:目标动作211     ActionInterval *easeBackOut = EaseBackOut::create(move);212     sp->runAction(easeBackOut);213     214     //     EaseBackInOut215     //    作用:让目标动作赋予回力 , 且以目标动作起点和终点位置作为回力点216     //    参数:目标动作217      ActionInterval * easeBackInOut =  EaseBackInOut::create(move);218     sp->runAction(easeBackInOut);219     220     //     EaseElasticIn221     //    作用:让目标动作赋予弹性 ,且以目标动作起点位子赋予弹性222     //     参数:目标动作223      ActionInterval * easeElasticIn=  EaseElasticIn::create(move);224     sp->runAction(easeElasticIn);225     226     //      EaseElasticOut227     //    作用:让目标动作赋予弹性 ,且以目标动作终点位子赋予弹性228     //     参数:目标动作229      ActionInterval *easeElasticOut =  EaseElasticOut::create(move);230     sp->runAction(easeElasticOut);231     232     //     EaseElasticInOut233     //    作用:让目标动作赋予弹性 ,且以目标动作起点和终点位子赋予弹性234     //     参数:目标动作235      ActionInterval *easeElasticInOut =  EaseElasticOut::create(move);236     sp->runAction(easeElasticInOut);237     238     239     //     EaseExponentialIn240     //    让目标动作缓慢开始241     //    参数:目标动作242      ActionInterval * easeExponentialIn=  EaseExponentialIn::create(move);243     sp->runAction(easeExponentialIn);244     245     //     EaseExponentialOut246     //    让目标动作缓慢中止247     //    参数:目标动作248     ActionInterval * easeExponentialInt=  EaseExponentialOut::create(move);249     sp->runAction(easeExponentialInt);250     251     //     EaseExponentialInOut252     //    让目标动作缓慢开始和中止253     //    参数:目标动作254      ActionInterval * easeExponentialInOut=  EaseExponentialInOut::create(move);255     sp->runAction(easeExponentialInOut);256     257     //     EaseRateAction258     //    作用 : 让目标动作设置速率259     //    参数1:目标动作260     //    参数2:速率261      ActionInterval * moveto =  MoveTo::create(5,  p(300,sp->getPositionY()));262      ActionInterval * easeRateAction =  EaseRateAction::create(move, 3);263     sp->runAction(easeRateAction);264     265     //     EaseSineIn266     //    作用:动作由慢到快267     //      参数:目标动作268      ActionInterval * easeSineIn =  EaseSineIn::create(move);269     sp->runAction(easeSineIn);270     271     //     EaseSineOut272     //    作用:动作由快到慢273     //      参数:目标动作274      ActionInterval * easeSineOut =  EaseSineOut::create(move);275     sp->runAction(easeSineOut);276     277     //     EaseSineInOut278     //    作用:动作由慢到快再快到慢279     //      参数:目标动作280      ActionInterval * easeSineInOut =  EaseSineInOut::create(move);281     sp->runAction(easeSineInOut);282 283 284 285 //     Speed286     //    作用:让目标动作运行速度加倍287     //    参数1:目标动作288     //    参数2:倍速289      ActionInterval * move =  MoveTo::create(10,  p(300,sp->getPositionY()));290      Speed * speed = Speed::create(move, 100);291     sp->runAction(speed);292     293     //     Spawn294     //  作用:让多个动作同时执行295     //    参数:目标动作的可变参数296      ActionInterval * move1 =  MoveTo::create(10,  p(300,sp->getPositionY()));297      ActionInterval * scale =  ScaleTo::create(2, 3);298      ActionInterval * rotate =  RotateTo::create(4, 190);299      FiniteTimeAction * spawn = Spawn::create(move1,scale,rotate,NULL);300     sp->runAction(spawn);301     302     //     Sequence303     //    作用:让多个动作按照前后顺序逐一执行304     //    参数:目标动作的可变参数305      ActionInterval * move2 =  MoveTo::create(2,  p(300, sp->getPositionY()));306      ActionInterval * scalet =  ScaleTo::create(2, 3);307      FiniteTimeAction * seq=  Sequence::create(move2,scalet,NULL);308     sp->runAction(seq);309 310 311         //    扩展如果要对目标动作全部进行方向运动,可以使用如下形式操作312      FiniteTimeAction *seqe= Sequence::create(moveby,scaleby,...NULL);313      FiniteTimeAction * reverseseq =  Sequence::create(seqe,seq->reverse(),NULL)314 315 316 317 //注意 Sequence中的所有动作都必须支持reverse函数,否则会出现异常318      ActionInterval * move =  MoveBy::create(2,  p(300, sp->getPositionY()));319      ActionInterval * scale =  ScaleBy::create(2, 3);320      FiniteTimeAction * seq=  Sequence::create(move,scale,NULL);321      FiniteTimeAction * reveseseq =  Sequence::create(seq,seq->reverse(),NULL);322     sp->runAction(reveseseq);323 324 325 326     327     //     Repeat328     //    作用:对目标动作进行重复运动(目标动作可以是 Sequence , Spawn)329     //    参数1:目标动作330     //    参数2:重复次数331      ActionInterval * move =  MoveTo::create(2,  p(300, sp->getPositionY()));332      ActionInterval * move2 =  MoveTo::create(2,  p(100,100));333      FiniteTimeAction*seq = Sequence::create(move,move2,NULL);334      FiniteTimeAction *repeat =  Repeat::create(seq, 3);335     sp->runAction(repeat);336 337 338     //     RepeatForever339     //    作用:对目标动作进行永久性的重复运动(目标动作可以是 Sequence , Spawn)340     //    参数:目标动作341      ActionInterval * move =  MoveTo::create(1,  p(300, sp->getPositionY()));342      ActionInterval * move1 =  MoveTo::create(1,  p(100,100));343      FiniteTimeAction* seq =  Sequence::create(move,move1,NULL);344      ActionInterval * repeatForever = RepeatForever::create(( ActionInterval* )seq);345     sp->runAction(repeatForever);346     347     //     CallFunc348     //    作用:创建一个回调动作(调用不带参数的回调方法);349     //    参数1:目标动作350     //    参数2:目标回调函数351      ActionInterval * move =  MoveTo::create(1,  p(300, sp->getPositionY()));352      CallFunc * funcall=  CallFunc::create(this, callfunc_selector(HelloWorld::callbackC));353      FiniteTimeAction * seq =  Sequence::create(move,funcall,NULL);354     sp->runAction(seq);355     356     //     CallFuncN357     //    作用:创建一个回调动作(调用 带一个参数的回调方法);358     //    参数1:目标动作359     //    参数2:目标回调函数360      ActionInterval * move =  MoveTo::create(1,  p(300, sp->getPositionY()));361      CallFuncN * funcall=  CallFuncN::create(this, callfuncN_selector(HelloWorld::callbackN));362      FiniteTimeAction * seq =  Sequence::create(move,funcall,NULL);363     sp->runAction(seq);364     365     //     CallFuncND366     //    作用:创建一个回调动作(调用 带两个参数的回调方法);367     //    参数1:目标动作368     //    参数2:目标回调函数369      ActionInterval * move =  MoveTo::create(1,  p(300, sp->getPositionY()));370      CallFuncND * funcall=  CallFuncND::create(this, callfuncND_selector(HelloWorld::callbackND)  ,(void*)0xbebabeba);371      FiniteTimeAction * seq =  Sequence::create(move,funcall,NULL);372     sp->runAction(seq);373     374  
原创粉丝点击