zoukankan      html  css  js  c++  java
  • cocos2dx 3.x(常见的46种动作)

      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     //     TintBy
    101     //    作用:创建一个色彩变化的出现动作
    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     //     Blink
    110     //    作用 :创建一额闪烁的动作
    111     //    参数1:闪烁完成的时间
    112     //    参数2:闪烁的次数
    113     
    114     ActionInterval * blink = Blink ::create(3, 10);
    115     sp->runAction(blink);
    116     
    117     
    118     
    119     //     DelayTime
    120     //    创建一个延迟的动作
    121     //    参数  延迟的时间
    122     ActionInterval * delaytime = DelayTime::create(3);
    123     sp->runAction(delaytime);
    124     
    125     //     OrbitCamera
    126     //    作用:创建一个球面坐标轨迹进行旋转的动作
    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     //     CardinalSpline
    139     //    作用:创建数组  点的数组
    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     //    CardinalSplineTo
    147     //    作用:创建一个样条曲线轨迹的动作
    148     //    参数1:完成轨迹所需的时间
    149     //    参数2:控制点的坐标数组
    150     //    拟合度  其值= 0 路径最柔和
    151     ActionInterval  * CardinalSplineTo=CardinalSplineTo::create(3, array, 0);
    152     sp->runAction(CardinalSplineTo);
    153     
    154     
    155     //    CardinalSplineBy
    156     //    作用:创建一个样条曲线轨迹的动作
    157     //    参数1:完成轨迹所需的时间
    158     //    参数2:控制点的坐标数组
    159     //    拟合度  其值= 0 路径最柔和
    160     ActionInterval * CardinalSplineBy = CardinalSplineBy::create(3, array, 0);
    161     sp->runAction(CardinalSplineBy);
    162     
    163     //    CatmullRomTo   CatmullRomBY
    164     //    作用:创建一个样条插值轨迹
    165     //    参数1:完成轨迹的时间
    166     //    参数2:控制点的数组坐标
    167     ActionInterval * catmullRomTo = CatmullRomTo::create(3, array);
    168     sp->runAction(catmullRomTo);
    169     
    170     //    Follow
    171     //    作用:创建一个跟随动作
    172     //    参数1:跟随的目标对象
    173     //    跟随范围,离开范围就不再跟随
    174     //创建一个参照物spT
    175     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     //     EaseBounceIn
    184     //    目标动作
    185     ActionInterval* move = MoveTo::create(3, Vec2(300, sp->getPositionY()));
    186     ////    让目标动作缓慢开始
    187     ////    参数:目标动作
    188     ActionInterval * EaseBounceIn = EaseBounceIn::create(move);
    189     sp->runAction(EaseBounceIn);
    190     
    191     //    EaseBounceOut
    192     //    作用:让目标动作赋予反弹力,且以目标动作结束位子开始反弹
    193     //    参数目标动作
    194     ActionInterval * easeBounceOut = EaseBounceOut ::create(move);
    195     sp->runAction(easeBounceOut);
    196     
    197     //    EaseBounceInOut
    198     //    作用:让目标动作赋予反弹力,且以目标动作起始与结束位子开始反弹
    199     ActionInterval * easeBounceInOut= EaseBounceInOut::create(move);
    200     sp->runAction(easeBounceInOut);
    201     
    202     //   EaseBackIn
    203     //    作用:让目标动作赋予回力 , 且以目标动作起点位置作为回力点
    204     //    参数:目标动作
    205     ActionInterval * easeBackIn = EaseBackIn::create(move);
    206     sp->runAction(easeBackIn);
    207     
    208     //    EaseBackOut
    209     //    作用:让目标动作赋予回力 , 且以目标动作终点位置作为回力点
    210     //    参数:目标动作
    211     ActionInterval *easeBackOut = EaseBackOut::create(move);
    212     sp->runAction(easeBackOut);
    213     
    214     //     EaseBackInOut
    215     //    作用:让目标动作赋予回力 , 且以目标动作起点和终点位置作为回力点
    216     //    参数:目标动作
    217      ActionInterval * easeBackInOut =  EaseBackInOut::create(move);
    218     sp->runAction(easeBackInOut);
    219     
    220     //     EaseElasticIn
    221     //    作用:让目标动作赋予弹性 ,且以目标动作起点位子赋予弹性
    222     //     参数:目标动作
    223      ActionInterval * easeElasticIn=  EaseElasticIn::create(move);
    224     sp->runAction(easeElasticIn);
    225     
    226     //      EaseElasticOut
    227     //    作用:让目标动作赋予弹性 ,且以目标动作终点位子赋予弹性
    228     //     参数:目标动作
    229      ActionInterval *easeElasticOut =  EaseElasticOut::create(move);
    230     sp->runAction(easeElasticOut);
    231     
    232     //     EaseElasticInOut
    233     //    作用:让目标动作赋予弹性 ,且以目标动作起点和终点位子赋予弹性
    234     //     参数:目标动作
    235      ActionInterval *easeElasticInOut =  EaseElasticOut::create(move);
    236     sp->runAction(easeElasticInOut);
    237     
    238     
    239     //     EaseExponentialIn
    240     //    让目标动作缓慢开始
    241     //    参数:目标动作
    242      ActionInterval * easeExponentialIn=  EaseExponentialIn::create(move);
    243     sp->runAction(easeExponentialIn);
    244     
    245     //     EaseExponentialOut
    246     //    让目标动作缓慢中止
    247     //    参数:目标动作
    248     ActionInterval * easeExponentialInt=  EaseExponentialOut::create(move);
    249     sp->runAction(easeExponentialInt);
    250     
    251     //     EaseExponentialInOut
    252     //    让目标动作缓慢开始和中止
    253     //    参数:目标动作
    254      ActionInterval * easeExponentialInOut=  EaseExponentialInOut::create(move);
    255     sp->runAction(easeExponentialInOut);
    256     
    257     //     EaseRateAction
    258     //    作用 : 让目标动作设置速率
    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     //     EaseSineIn
    266     //    作用:动作由慢到快
    267     //      参数:目标动作
    268      ActionInterval * easeSineIn =  EaseSineIn::create(move);
    269     sp->runAction(easeSineIn);
    270     
    271     //     EaseSineOut
    272     //    作用:动作由快到慢
    273     //      参数:目标动作
    274      ActionInterval * easeSineOut =  EaseSineOut::create(move);
    275     sp->runAction(easeSineOut);
    276     
    277     //     EaseSineInOut
    278     //    作用:动作由慢到快再快到慢
    279     //      参数:目标动作
    280      ActionInterval * easeSineInOut =  EaseSineInOut::create(move);
    281     sp->runAction(easeSineInOut);
    282 
    283 
    284 
    285 //     Speed
    286     //    作用:让目标动作运行速度加倍
    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     //     Spawn
    294     //  作用:让多个动作同时执行
    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     //     Sequence
    303     //    作用:让多个动作按照前后顺序逐一执行
    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     //     Repeat
    328     //    作用:对目标动作进行重复运动(目标动作可以是 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     //     RepeatForever
    339     //    作用:对目标动作进行永久性的重复运动(目标动作可以是 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     //     CallFunc
    348     //    作用:创建一个回调动作(调用不带参数的回调方法);
    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     //     CallFuncN
    357     //    作用:创建一个回调动作(调用 带一个参数的回调方法);
    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     //     CallFuncND
    366     //    作用:创建一个回调动作(调用 带两个参数的回调方法);
    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     
  • 相关阅读:
    一种线程安全的handle
    基于数组的无锁队列(译)
    distri.lua的web运维工具
    distri.lua重写开源手游服务器框架Survive
    99 Lisp Problems 二叉树(P54~P69)
    99 Lisp Problems 列表处理(P1~P28)
    TSPL学习笔记(4):数组相关练习
    TSPL学习笔记(3):排序算法练习
    用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 热更新Live2D
    用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用FairyGUI (二)
  • 原文地址:https://www.cnblogs.com/luorende/p/6017831.html
Copyright © 2011-2022 走看看