• cocos2d中sprite动画接口及动画实现思路总结


    cocos2d中sprite动画接口及动画实现思路总结

    1)延时动作(CCIntervalAction )

    CCDelayTime:延时

    [CCDelayTime actionWithDuration:1]

    CCMoveTo :移动到

    [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50) ]

    CCMoveBy:移动

    [CCMoveBy actionWithDuration:2 position:ccp(-50, -50)]

    CCJumpTo:跳跃到 -设置终点位置和跳跃癿高度和次数

    [CCJumpTo actionWithDuration:2 position:ccp(150, 50) height:30 jumps:5]

    CCJumpBy :跳跃 – 设置终点位置和跳跃癿高度和次数

    [CCJumpBy actionWithDuration:2 position:ccp(100, 100) height:30 jumps:5]

    CCScaleTo:放大到

    [CCScaleTo actionWithDuration:2 scale:4]

    CCScaleBy:放大

    [CCScaleBy actionWithDuration:2 scale:0.5]

    CCRotateTo:旋转到

    [CCRotateTo actionWithDuration:2 angle:180]

    CCRotateBy:旋转

    [CCRotateBy actionWithDuration:2 angle:-180]

    CCFadeTo:变暗到

    [CCFadeTo actionWithDuration: 1 opacity:80]

    CCFadeIn:由无变亮

    [CCFadeIn actionWithDuration:1.0f]

    CCFadeOut:由亮变无

    [CCFadeOut actionWithDuration:1.0f]

    2)组合动作

    CCSequence:线序排列若干个劢作,然后按先后次序逐个执行

    [CCSequence actions:ac0, ac1, ac2, ac3, ac4, ac0, nil]

    CCSpawn:同时并列执行若干个劢作,但要求劢作都必须 是可以同时执行癿。比如:移劢式翻转、变色、变大小等。

    [CCSpawn actions:ac1, ac2, seq, nil]

    CCRepeat:重复有限次数的动作

    [CCRepeat actionWithAction:seq times:3]

    reverse:反动作就是反向(逆向)执行某个动作,支持针对动作序列的反动作序列不是所有的类都支持反动作,XxxxTo 类通常不支持反动作,XxxxBy 类通常支持

    id ac1 = [CCMoveBy actionWithDuration:2 position:ccp(190, 220)];

    id ac2 = [ac1 reverse];

    CCAnimate:动画就是让精灵自身癿连续执行一段影像,形成模拟运动的效果:行走时的精灵状态、打斗时的状态等

    [CCAnimate actionWithAnimation: animation]

    CCRepeatForever:无限期执行某个动作或动作序列,直到被停止

    [CCRepeatForever actionWithAction:action]

    3)速度变化

    EaseIn: 匀加速

    [CCEaseIn actionWithAction:ac rate:3]

    EaseOut: 匀减速

    [CCEaseOut actionWithAction:ac rate:3]

    EaseInOut: 先匀加速后匀减速

    [CCEaseInOut actionWithAction:ac rate:3]

    EaseSineIn: 变加速(正弦)

    [CCEaseSineIn actionWithAction:ac]

    EaseSineOut: 变减速(正弦)

    [CCEaseSineOut actionWithAction:ac]

    EaseSineInOut: 先变加速后变减速(正弦)

    [CCEaseSineInOut actionWithAction:ac]

    EaseExponentialIn: 变加速(由慢至极快)

    [CCEaseExponentialIn actionWithAction:ac]

    EaseExponentialOut: 变减速(由极快至慢)

    [CCEaseExponentialOut actionWithAction:ac]

    EaseExponentialInOut: 先变加速后变减速(由慢至极快再由极快至慢)

    [CCEaseExponentialInOut actionWithAction:ac]

    4)函数扩展

    通过实现了动作、动作序列的任意扩展和连接。

    CCCallFunc-无参数函数:在动作序列中间或者结束调用某个函数,执行任何需要执行的任务:动作、状态修改等。

    [CCCallFunc actionWithTarget:self selector:@selector(CallBack1)

    CCCallFuncN-带对象参数 调用自定义函数时,传递当前对象。

    [CCCallFuncN actionWithTarget:self selector:@selector(CallBack2:)

    CCCallFuncND -带对象、数据参数 调用自定义函数时,传递当前对象和一个常量(也可以是指针)。

    [CCCallFuncND actionWithTarget:self selector:@selector(CallBack3:data:) data:(void*)2]

    上面参考知易教程简要介绍了cocos2d中常用的动作接口,下面是我自己总结几种动画实现思路,希望对大家有所帮助。

    1)冰糖葫芦法:像管道工中水管接通后水流过的动画,还有移车位车子的从house1走到house10的动画,这些必须将连贯整体的动画碎片话,最后像冰糖葫芦一样串在一起,每个连节点上计算下一步的状态和入口。

    2)递归法:很多背景动画都是循环播放的,比如白云飘过,鱼儿游过。像这类的动画可以通过在动画回调函数中递归调用自己来实现。

    3)组合运动法:高中物理有介绍任何运动都是可以分解的,比如螺旋运动吧,就可以分解成圆周运动和一个匀速运动。cocos2d中通过CCSpawn组合。

    4)内嵌法:像移车位选管页面中有个气球动画:气球里面有个房间号,房间号是动态变化的,动画要求气球和房间号整体飘动效果)。气球用的是CCSprite,房间号是CCLabel,我们将CCLabel嵌入CCSprite,然后直接操作CCSprite就可以实现整体效果。

     

  • 相关阅读:
    【技术贴】解决Eclipse编译java源文件之后没有生成class文件|找不到class文件
    小米1s 正式为我服役,纪念一下。
    解决servlet的out输出流html中文乱码
    小米1s充电时屏幕一直亮着不关闭的解决办法
    今天遇到的问题分析
    java操作Excel(org.apache.poi.hssf.usermodel)
    HTML滚动文字代码 marquee标签
    MIUI小米 卸载金山安全服务
    Oracle DBA 逻辑备份试题
    Oracle DBA结构试题1
  • 原文地址:https://www.cnblogs.com/ADaii/p/2868524.html
Copyright © 2020-2023  润新知