zoukankan      html  css  js  c++  java
  • cocos2dx 动画 二(iOS)

    7.Bezier曲线

    需要ccBezierConfig结构体,设置2个控制点和一个结束点

    1 ccBezierConfig bc;
    2 bc.controlPoint_1 = Vec2(400,400);
    3 bc.controlPoint_2 = Vec2(800,200);
    4 bc.endPosition = Vec2(900,300);
    5         
    6 BezierTo *bz = BezierTo::create(2.0, bc);
    7         
    8 spt->runAction(bz);

    8.控制动画速度变化

    EaseSineIn由慢到快

    EaseSineOut由快到慢 刹车效果

    EaseSineInOut由慢到快再到慢

    以MoveTo匀速为例 用EaseSineIn包装

    1 MoveTo *to = MoveTo::create(2, Vec2(700,500));
    2 EaseSineIn *in = EaseSineIn::create(to);
    3 spt->runAction(in);

    9.闪烁动画

    第一参数:时间

    第二参数:次数

    1 Blink *bl = Blink::create(2, 5);
    2 spt->runAction(bl);

    10.Sequence (动画序列,精灵需要顺序执行不同动画)

    1 MoveTo *mt = MoveTo::create(2, Vec2(600,300));
    2 DelayTime *dt = DelayTime::create(2);
    3 Blink *bl = Blink::create(2, 5);
    4 Sequence *sq = Sequence::create(mt,dt,bl, NULL);
    5 spt->runAction(sq);

    11.进度条动画

     1         Sprite *sp1 = Sprite::create("dark.jpg");
     2         sp1->setPosition(Vec2(300,300));
     3         this->addChild(sp1);
     4         
     5         Sprite *sp2 = Sprite::create("light.jpg");
     6        
     7         ProgressTimer *timer = ProgressTimer::create(sp2);
     8         timer->setPosition(Vec2(300,300));
     9         this->addChild(timer);
    10         
    11         timer->setType(ProgressTimer::Type::BAR);
    12         timer->setMidpoint(Vec2(0, 0));
    13         timer->setBarChangeRate(Vec2(1,0));
    14         
    15         ProgressTo *pt = ProgressTo::create(2, 100);
    16         timer->runAction(pt);

    12.并行动画(多个动画并发执行)

     1         Sprite *sp1 = Sprite::create("pean.jpg");
     2         sp1->setPosition(Vec2(300,300));
     3         this->addChild(sp1);
     4         
     5         MoveTo *mv = MoveTo::create(2, Vec2(700,300));
     6         RotateBy *rb = RotateBy::create(2, 3600);
     7         
     8         Spawn *sp = Spawn::create(mv,rb, NULL);
     9         
    10         sp1->runAction(sp);

    最后一个:CallFunc (回调)

     1         Sprite *sp1 = Sprite::create("pean.jpg");
     2         sp1->setPosition(Vec2(300,300));
     3         this->addChild(sp1);
     4         
     5         MoveTo *mv = MoveTo::create(2, Vec2(700,300));
     6         RotateBy *rb = RotateBy::create(2, 3600);
     7         
     8         Spawn *sp = Spawn::create(mv,rb, NULL);
     9         
    10         CallFunc *cf = CallFunc::create([&](void)
    11                                         {
    12                                             CCLOG("动画完");
    13                                         });
    14         Sequence *sq = Sequence::create(sp,cf, NULL);
    15         sp1->runAction(sq);
  • 相关阅读:
    js数组与字符串的相互转换方法
    js页面跳转常用的几种方式
    js刷新页面方法大全
    IIS上开启反向代理实现Vue项目接口跨域处理
    【问题解决记录】vue解决低版本安卓与ios10以下系统兼容性问题
    【解决问题记录】https网站中请求http资源接口报错与netERRSSLPROTOCOLERROR错误的解决
    indexedDb数据库基本操作
    Object常用方法
    htmlToTex
    禁止鼠标右键保存/拖动/选中/复制 图片/文字
  • 原文地址:https://www.cnblogs.com/wanyongjian/p/5061943.html
Copyright © 2011-2022 走看看