博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d的常用动作及效果总结之二:Composition actions
阅读量:5879 次
发布时间:2019-06-19

本文共 1561 字,大约阅读时间需要 5 分钟。

上一篇整理了 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度的转速永远的旋转下去。

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

转载地址:http://sldix.baihongyu.com/

你可能感兴趣的文章
更改tomcat的根目录路径
查看>>
51nod 1292 字符串中的最大值V2(后缀自动机)
查看>>
加快ALTER TABLE 操作速度
查看>>
学习笔记之软考数据库系统工程师教程(第一版)
查看>>
PHP 程序员的技术成长规划
查看>>
memcached 分布式聚类算法
查看>>
jquery css3问卷答题卡翻页动画效果
查看>>
$digest already in progress 解决办法——续
查看>>
虚拟机 centos设置代理上网
查看>>
Struts2中Date日期转换的问题
查看>>
mysql 数据类型
查看>>
Ubuntu 设置当前用户sudo免密码
查看>>
设置tomcat远程debug
查看>>
android 电池(一):锂电池基本原理篇【转】
查看>>
Total Command 常用快捷键
查看>>
ionic 调用手机的打电话功能
查看>>
怎么使用阿里云直播服务应用到现在主流直播平台中
查看>>
Xcode全局替换内容,一键Replace
查看>>
1000 加密算法
查看>>
exif_imagetype() 函数在linux下的php中不存在
查看>>