`
pan_这名还行
  • 浏览: 43556 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

【转】cocos2d曲线动作

阅读更多
曲线动作
曲线动作是在一段时间改变的特殊复合动作。在动画世界里它们经常被称为Tweening或者Easing action。
这些动作在内部修改动作的速度。但是它们不能修改运行时间。如果一个运行是5秒,那么动作的持续时间就是5秒。
曲线动作在时间片内改变直线。

比如它们可以加速或者减速内部动作。
这些动作被声明为3个类型:
In actions:加速器在动作的开始
Out actions:加速器在动作的结尾
InOut actions:加速器在动作的开始和结尾

关于它的更多内容请访问:
http://hosted.zeh.com.br/tweener/docs/en-us/misc/transitions.html
http://www.robertpenner.com/easing/easing_demo.html

它们加速的方式用公式进行定义:
-(void)update:(ccTime) t
{
   [innerupdate: powf(t,rate)];
}
变种
CCEaseIn:加速器在动作的开始;
CCEaseOut:加速器在动作的结尾;
CCEaseInOut:加速器在动作的开始和结尾速率实参代表加速器的速率。
// acceleration at the beginningid
action = [CCMoveToactionWithDuration:2position:ccp(100,100)];
id ease = [CCEaseInactionWithAction:action rate:2];
[spriterunAction: ease];
// acceleration at the endid
action = [CCMoveToactionWithDuration:2position:ccp(100,100)];
id ease = [CCEaseOutactionWithAction:action rate:2];
[spriterunAction: ease];
// acceleration at the beginning / endid
action = [CCMoveToactionWithDuration:2position:ccp(100,100)];
id ease = [CCEaseInOutactionWithAction:action rate:2];
[sprite runAction: ease];
指数型曲线动作


变种:
CCEaseExponentialIn;
CCEaseExponentialOut;
CCEaseExponentialInOut
id scaleAction = [CCScaleTo actionWithDuration:2.5 scale:.8];
id easeAction = [CCEaseExponentialInactionWithAction:scaleAction];
[label runAction:easeAction];

变种:
CCEaseSineIn;
CCEaseSineOut;
CCEaseSineInOut

// Sine at the beginning
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseSineInactionWithAction:move];
[spriterunAction:action];
// Sine at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseSineOutactionWithAction:move];
[spriterunAction:action];
// Sine at the beginning and at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseSineInOutactionWithAction:move];
[sprite runAction:action];
心电图型动作:



这些动作在时间片内模仿心电图图形,这个动作使用时间在0~1s内,所以这个内部动作操作这个特殊的值
这些值要不止一次使用(这个函数不是对象)。所以内部动作准备修改这个值。比如CCMoveBy,CCScaleBy,CCRotateBy等等,但是CCSquence或CCSpawn也许是不期望的结果。
变种:
CCEaseElasticIn
CCEaseElasticOut
CCEaseElasticInOut

// 'period' is how elastic is the action.
// recommended values: between 0.3 and 0.45
// Elastic at the beginning
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseElasticInactionWithAction:move period:0.3f];
[spriterunAction: action];
// Elastic at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseElasticOutactionWithAction:move period:0.3f];
[spriterunAction: action];
// Elastic at the beginning and at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseElasticInOutactionWithAction:move period:0.3f];
[sprite runAction: action];

股市型:



股市型模拟了一个反弹效果。
这些要不止一次使用(这个函数不是对象)。所以内部动作应该准备修改这个值。比如CCMoveBy,CCScaleBy,CCRotateBy等等,但是CCSquence或CCSpawn也许是不期望的结果。
变种:
CCEaseBounceIn
CCEaseBounceOut
CCEaseBounceInOut
// Bounce at the beginning
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseBounceInactionWithAction:move];
[spriterunAction: action];
// Bounce at the end
id move = [CCMoveByactionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBounceOutactionWithAction:move];
[spriterunAction: action];
// Bounce at the beginning and at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseBounceInOutactionWithAction:move];
[sprite runAction: action];
返回型:
这些值要不止一次使用(这个函数不是对象)。所以内部动作应该准备修改这个值。比如CCMoveBy,CCScaleBy,CCRotateBy等等,但是CCSquence或CCSpawn也许是不期望的结果。
变种:
CCEaseBackIn
CCEaseBackOut
CCEaseBackInOut
// Back at the beginning
id move = [CCMoveByactionWithDuration:3 position:ccp(350,0)];
id action = [CCEaseBackInactionWithAction:move];
[spriterunAction: action];
// Back at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseBackOutactionWithAction:move];
[spriterunAction: action];
// Back at the beginning and at the end
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCEaseBackInOutactionWithAction:move];
[sprite runAction: action];

加速型:
CCSpeed动作修改了内部的持续时间
id move = [CCMoveByactionWithDuration:3position:ccp(350,0)];
id action = [CCSpeedactionWithAction: move speed:1.0f];   // no speed modification
// but you can modify the speed later
[action setSpeed:2.5f]; // speed is 2.5faster
[action setSpeed: 0.5f]; //speed is 0.5 faster (it means 2 times slower)
  • 大小: 4.3 KB
  • 大小: 9.3 KB
  • 大小: 7.1 KB
  • 大小: 9.3 KB
分享到:
评论

相关推荐

    【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-扩展动作

    6. 动作缓动函数:Cocos2d-iPhone提供了一系列的缓动函数(Ease Actions),如CCEaseIn、CCEaseOut、CCEaseInOut等,它们可以改变动作的速度曲线,使得动画更自然流畅。 7. 动作管理:Cocos2d-iPhone的动作系统会...

    Cocos2D-X开发学习笔记-动作管理类的使用示例

    在Cocos2D-X中,动作(Actions)是游戏动画和交互性的重要组成部分,它们允许开发者控制游戏对象的行为,如移动、旋转、缩放等。动作管理类(Action Manager)则负责管理和调度所有的动作,确保游戏运行流畅。 在...

    Cocos2D-X开发学习笔记-动作类之基础动作的使用示例(下)

    在Cocos2D-X中,动作(Actions)是游戏对象行为的核心组成部分,它们可以改变节点的位置、旋转、缩放、透明度等多种属性,甚至实现复杂的动画效果。本文主要围绕Cocos2D-X中的基础动作类的使用进行深入探讨。 一、...

    cocos2d-x 2.x action集合(详细注释分类)

    文件夹"study14(动作集合ActionAll)"可能包含了一系列示例代码,这些代码演示了各种动作的用法,是深入理解Cocos2d-x动作系统的好资料。 通过深入研究这个"ActionAll"集合,你可以掌握Cocos2d-x中动作系统的精髓,...

    cocos2d制作类似雷电游戏中飞机的激光子弹效果源码

    cocos2d提供了矩形碰撞检测,但如果激光是曲线的,可能需要自定义碰撞算法。例如,可以将激光分解为多个小段进行逐个检测。 4. **特殊效果**:为了让激光看起来更真实,可以添加一些特效,如发光、闪烁、颜色渐变等...

    cocos2d-x抽屉

    Cocos2d-x的动作库提供了一系列基础和复杂的动作类,允许开发者轻松创建各种动态效果。例如,`MoveBy`动作可以将节点移动到指定的位置,`EaseIn`和`EaseOut`可以改变动作的速度曲线,使得动画具有加速度或减速度效果...

    cocos2d-x-2.1.4帮助文档

    2. **动作(Actions)**:cocos2d-x提供了丰富的动作库,如移动、旋转、缩放、淡入淡出等,让开发者轻松创建动态效果。 3. **精灵(Sprites)**:精灵是游戏中的基本元素,可以理解为一个带有图像的可移动对象。...

    Cocos2d-x实战_Lua卷 _第2版

    首先,Cocos2d-x的核心特性在于它的渲染引擎,它提供了丰富的2D图形绘制功能,如精灵(Sprite)、批次渲染(Batching)、动作(Actions)和转换(Transitions)。开发者可以通过Lua语言调用这些功能,创建出动态的、...

    cocos2d-x3.x 动画demo

    此外,cocos2d-x 3.x还提供了一些高级特性,如动作缓动(Ease Actions),可以调整动作的速度曲线,使动画效果更加自然。比如,我们可以使用`CCEaseInOut`让动画的起始和结束速度更慢,中间加速,从而增强视觉冲击力...

    Cocos2d-x 3.4 API离线文档

    6. **脚本支持**:Cocos2d-x 3.4引入了Lua和JScript的绑定,允许开发者使用脚本语言进行游戏逻辑编程,降低了学习曲线,提高了开发效率。 7. **网络通信**:网络模块提供HTTP和TCP/IP的网络通信接口,支持异步请求...

    cocos2d-html5

    这个框架基于Cocos2d-x项目,但针对Web环境进行了优化,允许开发者使用JavaScript或TypeScript进行游戏编程。在HTML5技术的支持下,Cocos2d-html5游戏可以在多种浏览器和设备上运行,包括桌面电脑、移动设备甚至游戏...

    Cocos2d开发教程

    3. 动作:Cocos2d的动作系统允许开发者轻松实现精灵的动画效果,如移动、旋转、缩放、淡入淡出等。 二、Cocos2d编程语言 在iOS平台上,Cocos2d通常与Objective-C或Swift结合使用。Objective-C是Cocos2d早期版本的...

    cocos2d-x-3.6离线文档

    《cocos2d-x-3.6离线文档详解》 Cocos2d-x是一款开源的游戏开发框架,广泛应用于移动平台的游戏开发,如iOS、Android和Windows Phone等。该框架基于C++,提供了丰富的功能,使得开发者能够快速构建2D和3D游戏。本文...

    cocos2dx_study.rar_cocos2d-x_cocos2d-x实例_cocos2dx

    cocos2d-x支持多种脚本语言,C++是最底层的原生语言,性能最佳,但学习曲线较陡峭。Lua和JavaScript则相对简单,易于上手,适合快速开发。理解不同语言的优势和使用场景,能帮助你做出更适合的开发选择。 五、渲染...

    Cocos2d-JS-v3.0-API

    1. **渲染系统**:Cocos2d-JS 提供了一个强大的渲染系统,支持精灵(Sprite)、层(Layer)、场景(Scene)、网格(Grid)、动作(Action)等基本图形元素。开发者可以通过这些元素构建复杂的2D游戏场景。 2. **...

    Cocos2d-x离线帮助API

    总的来说,Cocos2d-x离线帮助API是开发者不可或缺的资源,它提高了开发效率,降低了学习曲线,使得Cocos2d-x成为更易上手的游戏开发平台。通过深入学习和掌握这个API,开发者能够充分利用Cocos2d-x的强大功能,创造...

    Cocos2D-X开发学习笔记-渲染框架之图形的绘制

    Cocos2D-X是一款强大的跨平台2D游戏开发框架,基于C++,并提供了Lua和JavaScript等脚本语言接口。本教程将深入讲解Cocos2D-X中的渲染框架,特别是如何进行图形的绘制,这对于创建游戏场景、角色动画以及用户界面至关...

    WP7版COCOS2D-X

    在实际开发中,COCOS2D-X提供了丰富的API,包括场景管理、图层、精灵、动作、粒子系统、文本渲染等。它的性能优化做得很好,支持多分辨率和自动缩放,使得游戏可以在不同尺寸和分辨率的设备上流畅运行。此外,COCOS...

    cocos2d-iphone-1.0.1

    4. **动作(Actions)**:cocos2d提供了丰富的动作库,如移动、旋转、淡入淡出等,用于实现游戏对象的动画效果。 5. **定时器(Timers)**:通过定时器,开发者可以精确地控制游戏循环和事件触发。 6. **物理引擎...

    cocos2d-0.4.0 for iphone

    动作系统是Cocos2d的一大亮点,它提供了一系列预定义的动作,如EaseIn/EaseOut、JumpBy、RotateTo等,也可以自定义复杂序列动作,使游戏对象有生动的动画效果。 7. **脚本支持**: 尽管Cocos2d主要使用Objective-...

Global site tag (gtag.js) - Google Analytics