cocos2d的常用动作及效果总结之二:Composition actions

转载 2012年03月26日 16:33:52

                              cocos2d的常用动作及效果总结之二:Composition actions

   以下文字内容转载自:http://hi.baidu.com/flwblog/blog/item/2e672ec7415782c1d0006054.html    感谢原作者。

   

上一篇整理了 basice action  基本动作的部分,这一篇接着讲 composition actions -复合动作的部分。在实际编程中,这部分是跑不掉的,几乎每一个都是必用的。

CCSequence 

sequence是用来按顺序执行一系列的动作,即动作按排列的顺序一个接一个的执行,示例如下:

id action1 = [CCMoveTo actionWithDuration:2 position:ccp(100,100)];
id action2 = [CCMoveBy actionWithDuration:2  position: ccp(80,80)];
id action3 = [CCMoveBy actionWithDuration:2  position: ccp(0,80)];
[sprite runAction: [CCSequence actions:action1, action2, action3, nil]];

上面这段代码的意思是,sprite(精灵对象)先移动到坐标(100,100)位置,然后在向右上方移动(80,80),然后,再向右移动80(80,0)。这一系列动作是不重叠,一个接一个的执行的。

注意的是,在这些动作中不能有 CCRepeatForever 这种无限的动作(就是不停的一直持续的动作),必须是那种可以在有限的时间内完成的。

CCSpawn

这个与上面的 CCSequence 不同的是,排列的动作是同时执行的,执行的时间以子动作中的最长的时间为准。代码示例:

id action = [CCSpawn actions:
		[CCJumpBy actionWithDuration:2 position:ccp(300,0) height:50 jumps:4],
		[CCRotateBy actionWithDuration: 2 angle: 720],
		nil];
 
[sprite runAction:action];

上面这段代码的意思是,sprite 在两秒钟内,向右跳四次,总共跳跃距离是300,跳跃高度是50,在跳跃过程中 同时旋转720度。

CCRepeat 

这个是用来重复一个动作有限的次数。当然,你也可以用CCSequence来实现同样的功能,只是那样看起来有点傻。示例:

id a1 = [CCMoveBy actionWithDuration:1 position:ccp(150,0)];
id action1 = [CCRepeat actionWithAction:
		[CCSequence actions: [CCPlace actionWithPosition:ccp(60,60)], a1, nil]
		times:3];
[sprite runAction:action1];

上面这段代码的意思是,先将sprite 放置在(60,60)位置,然后一秒内向右移动150的距离。这两个动作重复3次。

CCRepeatForever  

上面的是重复有限次数,这个是无限次重复,比如,你想让一个轮子不停的旋转,就可以用这个实现。示例:

CCRotateBy* rotate = [CCRotateBy actionWithDuration:1.0f angle:360];
CCRepeatForever* action2 = [CCRepeatForever actionWithAction:rotate];
[sprite runAction:action2];

就像上面讲的这段代码会让这个 sprite 一直不停的 以每秒360度的转速永远的旋转下去。

通过上面这四种类,可以方便的组合出许多复杂的运动,就看你的想象力了。

Cocos2d-动作(Action)详解

基础原理动作类(Action)是所有动作的基类,创建的对象代表一个动作。动作作用于Node,因此每个动作都需要由Node对象执行。动作类,作为基类,实际上是一个接口,它的大多数的实现类都是派生于有限时...
  • ko_tin
  • ko_tin
  • 2016年10月20日 15:31
  • 466

cocos2d的常用动作及效果总结之一: Basic actions(转)

在官方网站上,对cocos2d所提供的动作(action)转化(Transformations)以及效果(effect)做了如下分类Basic actions Composition actions ...
  • fengmm521
  • fengmm521
  • 2017年11月03日 18:49
  • 48

Cocos2d-x 3.x中43种常用动作汇总

本文总结Cocos2d-x 3.x版本中43种常用动作类,包括每个类的作用、使用方法以及所实现的效果。 ScaleBy  作用: 创建一个缩放的动作   参数1:达到缩放大小的所需...
  • u011742541
  • u011742541
  • 2015年02月10日 14:33
  • 890

Cocos2d-X 精灵、动作效果

命名空间宏: USING_NS_CC; 感觉其实挺鸡肋的。 NS_CC_BEGIN; == using namespace cocos2d{ NS_CC_END ; } 判断一个精...
  • fansongy
  • fansongy
  • 2013年04月22日 16:20
  • 6242

Cocos2d-x 抖动效果

在网上看到一个挺有意思的东西 -- 抖动效果。这个动作应该可以用在制作战争类游戏炸弹爆炸或者渲染游戏画面效果等。 这是一个简单的动作,其实如果自己实现的话也是不难的,想一下都知道:所谓抖动,那么就是不...
  • Crayon_DyS
  • Crayon_DyS
  • 2013年10月16日 20:00
  • 3412

【动作】Cocos2d-x 动作的分类与使用总结

原文链接:http://blog.csdn.net/decajes/article/details/25738609 本文搜集了几篇关于动作的文章,作为收藏。 /////////////...
  • ldpjay
  • ldpjay
  • 2015年06月05日 17:45
  • 1221

cocos2d-android基础——瞬时动作和延时动作

1、MaInActivity package com.njupt.actioncc; import org.cocos2d.layers.CCScene; import org.cocos2d.n...
  • caihongshijie6
  • caihongshijie6
  • 2014年01月23日 17:11
  • 2000

cocos2d-js动作的连续

在上一节中我们介绍了一基本的动作,但是仅仅做这些简单的动作似乎并不能满足我们在一些复杂的动作的要求,于是,我们想能否有一些函数能够让都做连续起来,比如说我像让某一个精灵执行了这个动作之后,紧接着去执行...
  • datouniao1
  • datouniao1
  • 2017年02月28日 22:06
  • 583

Cocos2d-JS 动作、特效和动画

动作 动作包括基本动画和基本动作的组合,基本动作有缩放、移动、旋转等动作。 动作类是cc.Action。它的类图如图7-1所示。 从图中可以看出cc.Action的一个子类是cc.F...
  • AiCoding_D
  • AiCoding_D
  • 2016年04月14日 10:23
  • 5086

cocos2d-x动作、特效和动画(四)贝赛尔曲线动作

首先是贝赛尔曲线的简单了解(链接):http://www.byywee.com/page/M0/S890/890471.html 简单说,贝塞尔曲线是应用与二维图形应用程序的数学曲线,每一个定点都有两...
  • Liar0606
  • Liar0606
  • 2014年01月15日 13:13
  • 1490
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d的常用动作及效果总结之二:Composition actions
举报原因:
原因补充:

(最多只允许输入30个字)