【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-组合动作
组合动作 :按照一定的次序将上述基本动作组合起来,形成连贯癿一套组合动作。组合动作包括以下几类:
Sequence 的使用非常简单,该类也从 CCIntervalAction 派生,本身就可以被CocosNode 对象执行。该类的作用就是线序排列若干个动作,然后按先后次序逐个执行
CGSize s = [[CCDirector sharedDirector] winSize];
CGPoint p = ccp(s.width/2, 50);
// 创建5个劢作
id ac0 = [CCPlaceactionWithPosition:p];
id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];
id ac2 = [CCJumpTo actionWithDuration:2 position:ccp(150,50) height:30 jumps:5];
id ac3 = [CCBlink actionWithDuration:2 blinks:3];
id ac4 = [CCTintBy actionWithDuration:0.5 red:0 green:255 blue:255];
//将 5 个动作组合为一个序列,注意不要忘了用 nil 结尾。
id action=[CCSequence actions:ac0, ac1, ac2, ac3,ac4, ac0, nil];
[sprite runAction:action];
同步 – Spawn
Spawn 的使用非常简单,该类也从 IntervalAction 派生,本身就可以被
CocosNode 对象执行。该类的作用就是同时并列执行若干个动作,但要求动作都必须是可以同时执行的。比如:移动式翻转、变色、变大小等。
需要特别注意的是,同步执行最后的完成时间由基本动作中用时最大者决定。
CGSize s = [[CCDirector sharedDirector] winSize];
CGPoint p = ccp(s.width/2, 50);
sprite.rotation =0;
[spritesetPosition:p];
//
创建 4 个需要并行的动作,确保动作用时可组合。2 – 2 - (1+1)
id ac1 = [CCMoveToactionWithDuration:2position:ccp(s.width
-50, s.height -
50)];
id ac2 = [CCRotateToactionWithDuration:2angle:180];
id ac3 = [CCScaleToactionWithDuration:1scale:4];
id ac4 = [CCScaleByactionWithDuration:1scale:0.5];
id seq = [CCSequenceactions:ac3, ac4,nil];
/ /同步动作和组合动作以形成一个连续的新动作。
id action=[CCSpawn actions:ac1, ac2, seq,nil];
[sprite runAction:action];
重复有线次数 – Repeate
重复有限的次数的动作,该类也从 IntervalAction 派生,可以被 CocosNode 对
象执行。示例代码如下:
CGSize s = [[CCDirector sharedDirector] winSize];
CGPoint p = ccp(s.width/2, 50);
sprite
.rotation
= 0;
[spritesetPosition:p];
// 创建动作序列
id ac1 = [CCMoveToactionWithDuration:2position:ccp(s.width -50,
s.height - 50)];
id ac2 = [CCJumpByactionWithDuration:2position:ccp(-400,
-200)height:30jumps:5];
id ac3 = [CCJumpByactionWithDuration:2position:ccp(s.width/2,0)height:20jumps:3];
id seq = [CCSequenceactions:ac1, ac2, ac3,nil];
// 重复运行上述动作序列 3次。
id action= [CCRepeatactionWithAction:seqtimes:3];
[sprite runAction:action];
作 – Reverse
作就是反向(逆向)执行某个动作,支持针对动作序列的作序列。作
不是一个专门的类,而是
CCFiniteAction 引入的一个接口。不是所有的类都支持
作,XxxxTo 类通常不支持作,XxxxBy 类通常支持。示例如下:
CGSizes = [[CCDirectorsharedDirector]winSize];
CGPointp =ccp(s.width/2,50);
sprite.rotation=0;
[spritesetPosition:p];
idac1 = [CCMoveByactionWithDuration:2position:ccp(190,220)];
//创建某个动作的作。
idac2 = [ac1reverse];
idaction= [CCRepeatactionWithAction:[CCSequenceactions:ac1,
ac2,nil]times:2];
[spriterunAction:action];
动画 – Animation
动画就是让精灵自身的连续执行一段影像,形成模拟运动的效果:行走时的精灵状态、打斗时的状态等。
CGSize s = [[CCDirectorsharedDirector]winSize];
CGPoint p = ccp(s.width/2,50);
sprite.rotation =0;
[spritesetPosition:p];
//加载帧动画图
CCTexture2D *texture = [[CCTextureCachesharedTextureCache]addImage:@"fps_images.png"];
//初始化动画帧数组
NSMutableArray *animFrames = [NSMutableArrayarray];
for (int i=0; i<12; i++) {
CCSpriteFrame *frame =[CCSpriteFrame
frameWithTexture:texture rect:CGRectMake(16*i,0,16,32)];
[animFramesaddObject:frame];
}
//每帧切换间隔0.2秒
CCAnimation *animation=[CCAnimation
animationWithFrames:animFrames delay:0.2f];
//创建帧动作
id action = [CCAnimate actionWithAnimation: animation];
id actionRep=[CCRepeat actionWithAction:actiontimes:10];
[spriterunAction:actionRep];
无限重复 – RepeatForever
RepeatForever 是从 Action 类直接派生的,因此无法参不序列和同步;自身也无
法反向执行。该类的作用就是无限期执行某个动作或动作序列,直到被停止。
CGSize s = [[CCDirectorsharedDirector]winSize];
CGPoint p = ccp(s.width/2,50);
sprite.rotation =0;
[spritesetPosition:p];
//加载帧动画图
CCTexture2D *texture = [[CCTextureCachesharedTextureCache]addImage:@"fps_images.png"];
//初始化动画帧数组
NSMutableArray *animFrames = [NSMutableArrayarray];
for (int i=0; i<12; i++) {
CCSpriteFrame *frame =[CCSpriteFrame
frameWithTexture:texture rect:CGRectMake(16*i,0,16,32)];
[animFramesaddObject:frame];
}
//每帧切换间隔0.2秒
CCAnimation *animation=[CCAnimation
animationWithFrames:animFrames delay:0.2f];
//创建帧动作
id action = [CCAnimate actionWithAnimation: animation];
//无限执行动作
id actionRep=[CCRepeatForever actionWithAction:action];
[spriterunAction:actionRep];
截图如下
分享到:
相关推荐
【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-扩展动作 http://blog.csdn.net/tt5267621/article/details/7626450
【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-瞬时动作 http://blog.csdn.net/tt5267621/article/details/7624781
【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-延时动作 http://blog.csdn.net/tt5267621/article/details/7625309
【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-组合动作 http://blog.csdn.net/tt5267621/article/details/7626137
【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! http://blog.csdn.net/xiaominghimi/article/details/7009503
【iOS-Cocos2d游戏开发】触屏事件处理机制 http://blog.csdn.net/tt5267621/article/details/7631729
iOS实例开发源码——iliu-ios-cocos2d-viking-cba07f8.zip
【iphone游戏开发】iphone-Cocos2d游戏开发之三:精灵表的详细讲解(二)小鸟眨眼睛
《iOS5 cocos2d游戏开发实战(第2版)》免费P
iOS游戏应用源代码——iliu-ios-cocos2d-viking-cba07f8.zip
iOS实例开发源码——iOS-Gamer-Cocos2D-86714e3.zip
iOS 5 cocos2d游戏开发实战(第2版)
iOS游戏应用源代码——iOS-Gamer-Cocos2D-86714e3.zip
Mac-OS-X-配置-Cocos2d-x-开发环境(iOS-和-Android).doc
iOS游戏应用源代码——cocos2d-cocos2d-iphone-extensions.zip
iOS游戏应用源代码——cocos2d-cocos2d-iphone-Release.zip
github地址: https://github.com/LLSkittles/cocos2d-iphone-demo
12-IOS游戏开发Cocos2d.pdf
2:双击某个点,放大这块,并且控制了地图不能出边界 写了个场景缩放类,但地图碰到一个很奇怪的问题,可以探讨下,场景用的tileMap地图,缩放后会有一些黑线,很纠结,目前没找到解决方案,有答案的告诉我下,谢谢! 直接...