Cocoa学习笔记 Cocos2d 各种动作介绍 (上)

移动开发 iOS 游戏开发
本文介绍的是Cocos学习笔记 Cocos2d 各种动作介绍,主要讲述了几个常用的动作。我们先来看内容。

Cocoa学习笔记 Cocos2d 各种作是本文呀介绍的内容,本篇文章分为上下两篇,请友们不要忘了下篇内容,请关注。我们来看内容。

通常调用某个动作的方法:

  1. // 创建动作    
  2.   id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];       
  3. // 使用动作。(说明:tamara 是一个 CCSprite。)     
  4. [tamara runAction: actionTo];  

瞬时动作

顾名思义。瞬时动作就是不需要时间,马上就完成的动作。瞬时动作的共同基类是 InstantAction。

放置 – Place

效果类似于 node.Position = ccp(x, y)。之所以作为一个动作来实现是为了可以与其他动作形成一个连续动作。

示例:

  1.  (void) OnPlaceMenue:(id) sender {    
  2.  CGSize s = [[CCDirector sharedDirector] winSize];    
  3.  CGPoint p = ccp(CCRANDOM_0_1() * s.width, CCRANDOM_0_1() * s.height);    
  4.  [sprite runAction:[CCPlace actionWithPosition:p]];    
  5. }  

 隐藏 – Hide

效果类似于 [node setVisible:NO].

示例:

  1. (void) OnHideMenue:(id) sender {    
  2.  [sprite runAction:[CCHide action]];    
  3.  } 

显示 – Show

效果类似于 [node setVisible:YES].

示例:

  1. (void) OnShowMenue:(id) sender {    
  2.  [sprite runAction:[CCShow action]];    
  3.  }  

可见切换 – ToggleVisibility 代码如下:

  1. (void) OnToggleMenue:(id) sender {    
  2. [sprite runAction:[CCToggleVisibility action]];    
  3.  }  

延时动作

延时动作就是动作的完成需要一定时间。因此,actionWithDuration 是延时动作执行时的***个参数,延时动作的共同基类是 CCIntervalAction。

函数的命名规则:

***To: 意味着运动到指定的位置。

***By:意味着运动到按照指定癿 x、y 增量的位置。(x、y 可以是负值)

移动到 – CCMoveTo

移动– CCMoveBy

跳跃到 – CCJumpTo

设置终点位置和跳跃癿高度和次数。

跳跃 – CCJumpBy

设置终点位置和跳跃癿高度和次数。

贝塞尔 – CCBezierBy

支持 3 次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终点切线方向,P3-终点。

首先设置定 Bezier 参数,然后执行。

放大到 – CCScaleTo

设置放大倍数,是浮点型。

放大 – CCScaleBy

旋转到 – CCRotateTo

旋转 – CCRotateBy

闪烁 – CCBlink

设定闪烁次数

色调变化到 – CCTintTo

色调变换 – CCTintBy

变暗到 – CCFadeTo

由无变亮 – CCFadeIn

由亮变无 – CCFadeOut

组合动作

按照一定的次序将上述基本动作组合起来,形成连贯的一套组合动作。组合动作包括以 下几类:

序列 – CCSequence

主要作用就是线序排列若干个动作,然后按先后次序逐个执行。

  1.  (void) OnSequence:(id) sender {    
  2.  CGSize s = [[CCDirector sharedDirector] winSize];     
  3.  CGPoint p = ccp(s.width/2, 50);    
  4. // 创建5个动作    
  5.  id ac0 = [sprite runAction:[CCPlace actionWithPosition:p]];    
  6.  id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];    
  7. id ac2 = [CCJumpTo actionWithDuration:2 position:ccp(150, 50) height:30 jumps:5];    
  8.  id ac3 = [CCBlink actionWithDuration:2 blinks:3];    
  9. id ac4 = [CCTintBy actionWithDuration:0.5 red:0 green:255 blue:255];    
  10.  //将 5 个动作组合为一个序列,注意不要忘了用 nil 结尾。    
  11. [sprite runAction:[CCSequence actions:ac0, ac1, ac2, ac3, ac4, ac0, nil]];    
  12. }  

同步 – Spawn Spawn

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

需要特别注意的是,同步执行***的完成时间由基本动作中用时***者决定。

  1. (void) OnSpawn:(id) sender {    
  2.  CGSize s = [[CCDirector sharedDirector] winSize];    
  3.  CGPoint p = ccp(s.width/2, 50);    
  4.  sprite.rotation = 0;     
  5. [sprite setPosition:p];    
  6. // 创建 4 个需要并行的动作,确保动作用时可组合。2 – 2 - (1+1)    
  7.  id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];    
  8.  id ac2 = [CCRotateTo actionWithDuration:2 angle:180];     
  9.  id ac3 = [CCScaleTo actionWithDuration:1 scale:4];     
  10.  id ac4 = [CCScaleBy actionWithDuration:1 scale:0.5];    
  11.  id seq = [CCSequence actions:ac3, ac4, nil];    
  12. // 同步动作和组合动作以形成一个连续的新动作。    
  13.  [sprite runAction:[CCSpawn actions:ac1, ac2, seq, nil]];    
  14. } 

小结:关于Cocoa学习笔记 Cocos2d 各种动作介绍 (上)的内容介绍完了,希望本文对你有所帮助,请继续关注 Cocoa学习笔记 Cocos2d 各种动作介绍 (下)

【编辑推荐】

  1. 解析Cocos2d项目整体框架和启动流程
  2. 浅谈Cocoa Touch国际化
  3. Cocoa基本原理指南 Cocoa对象 生命周期
  4. Cocoa 基本原理指南 内省介绍
  5. Cocoa 基本原理指南 Cocoa自我介绍
责任编辑:zhaolei 来源: 博客园
相关推荐

2011-07-08 16:27:52

Cocoa Cocos2d 动作

2011-08-11 18:00:18

Cocos2d动作Action

2011-08-11 17:52:01

Cocos2d游戏对象

2011-08-02 15:37:48

Cocos2D UIAccelero

2011-08-09 16:08:58

IOS游戏Cocos2d

2011-08-02 15:47:28

Cocos2D Animation

2011-08-09 16:25:16

Cocos2d视图坐标

2011-08-17 15:04:48

Cocos2DUIAccelerom加速计

2011-07-29 18:02:06

2011-07-27 10:13:23

Cocos2D iPhone

2012-06-01 10:27:44

Cocos2d触摸分发原理

2011-08-11 14:32:04

iPhone游戏Cocos2dActions

2011-07-26 10:42:00

Cocoa Cocoa2d 游戏

2012-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho

2011-08-08 17:17:55

Cocos2D 坐标 OpenglES

2011-07-27 14:48:21

iPhone Cocos2D 坐标

2011-08-08 11:26:39

Cocos2d 游戏 Class类

2011-07-20 14:04:46

Cocos2d iPhone 游戏

2011-07-27 13:44:08

2011-08-22 10:49:42

Cocos2d 开发CCLayerTouch事件
点赞
收藏

51CTO技术栈公众号