本节书摘来异步社区《Cocos2d 跨平台游戏开发指南(第2版)》一书中的第1章,第1.9节,作者: 【印度】Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 添加动作到精灵

在前面的动画制作中,我们已经学习了一些有关Actions的内容。除此之外,Cocos2d中还有更多动作供你使用。并且,你也可以把多种动作组成一个动作序列,集中应用到目标对象上。

1.9.1 准备工作

首先,让我们一起看一个简单的动作,它用来把hero沿着x轴移动屏幕宽度的一半,并沿y轴方向从中心向下移动屏幕高度的四分之一。

1.9.2 操作步骤

在把hero添加到MainScene之后,在MainScene.m文件中添加如下代码:

CGPointfinalPos = CGPointMake(center.x + winSize.width/4, center.y -
winSize.height/4);
CCActionFiniteTime* actionMove = [CCActionMoveToactionWithDuration
:1.0position:finalPos];
[herorunAction:actionMove];

为了方便起见,我创建了一个CGPoint,命名为finalPos,用来存储最终位置。然后,创建一个CCActionFiniteTime类型的变量actionMove,调用CCMoveTo函数,指定动作的持续时间为1.0秒,并且给出想把hero移动到的目的位置。最后,调用hero的runAction函数,传入创建好的动作。

1.9.3 工作原理

当你运行项目时,hero起初位于黄色渲染精灵的左侧,而后慢慢开始向右下角移动,(注:原文中if the render sprite is over a period of 1second一句,建议删除,因为并未对render精灵施加动作,它是一直存在的)经过1秒之后,hero到达目标位置,移动动作停止,hero将再次静止不动,如图1-25所示。

1.9.4 更多内容

接下来,让我们创建更多动作,然后把这些动作放入一个动作序列中,依次执行这些动作。为此,我们将添加如下代码,替换掉之前的动作代码:

//ActionsCGPointinitPos = hero.position;
CGPointfinalPos = CGPointMake(center.x + winSize.width/4, center.y -
winSize.height/4);CCActionFiniteTime* actionMove = [CCActionMoveToactionWithDuration:
1.0position:finalPos];CCAction *rotateBy = [CCActionRotateByactionWithDuration:2.0 angle:
180];CCAction *tintTo= [CCActionTintToactionWithDuration:1.0
color:[CCColorcolorWithRed:0.0fgreen:1.0blue:0.0]];CCAction *delay = [CCActionDelayactionWithDuration:1.0];CCAction *moveToInit = [CCActionMoveToactionWithDuration:
1.0position:initPos];CCAction *rotateBack = [CCActionRotateByactionWithDuration:2.0 angle:
180];CCAction *tintBlue= [CCActionTintToactionWithDuration:1.0
color:[CCColorcolorWithRed:0.0fgreen:0.0blue:1.0]];CCAction *sequence = [CCActionSequenceactions:actionMove,
rotateBy,tintTo, moveToInit, delay, rotateBack, tintBlue, nil];[herorunAction:sequence];

在上面代码中,在把最终位置保存到finalPos变量之后,我又把hero的初始位置保存到名称为initPos的CGPoint类型变量中,后面我们会用到它。

第一个动作是moveTo动作,用来把角色移动到指定的位置。

接着,我们将使用rotateBy动作,对角色进行旋转,并指定持续时间与旋转角度。

随后,我们会使用tintTo动作,它用来改变角色对象的颜色,并再次给出持续时间与想改变的颜色。本示例中,我们把角色的颜色更改为绿色。

然后,我们调用延时动作,用来在执行下一个动作之前暂停一段时间。在示例中,我们把延时时间设置为1秒。

接下来,我们要把角色对象移动到最初位置,改变对象颜色为蓝色,再次把对象旋转180度。

然后,创建CCSequence动作,把所有动作放入其中,以便依次播放这些动作。动作添加完之后,再添加一个nil,表示动作列表结束。

最后,我们调用hero的runAction函数,执行动作序列。

现在,人物角色将从起始位置开始执行一系列动作,当他返回起始位置时,将变为蓝色。

代码产生的效果如图1-26所示。

《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵相关推荐

  1. iOS cocos2d 2游戏开发实战(第3版)

    <iOS cocos2d 2游戏开发实战(第3版)> 基本信息 原书名:Learn cocos2d 2: Game Development for iOS 作者: (美)Steffen I ...

  2. iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!

    2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...

  3. 添加类iOS cocos2d 2游戏开发实战(第3版)

    这两天一直在学习添加类之类的问题,现在正好有机会和大家讨论一下. 第1章 简介 1 1.1 第3版中的新增内容 2 1.2 选择ios版cocos2d的来由 3 1.2.1 收费 3 1.2.2 开源 ...

  4. iOS 5 cocos2d游戏开发实战(第2版)

    <iOS 5 cocos2d游戏开发实战(第2版)> 基本信息 作者: [美]Steffen Itterheim Andreas Low [作译者介绍] 译者: 同济大学苹果俱乐部 丛书名 ...

  5. 初学者开发iOS游戏的入门必备用书——iOS 5 cocos2d游戏开发实战(第2版)

    如果想接触iOS游戏开发,今天笔者就推荐一本"大杀器"--<iOS 5 cocos2d游戏开发实战(第2版)>(当当链接) 为零基础的"设想过自己写个电脑游戏 ...

  6. Unity 5.x 游戏开发指南 HD版 final.pdf

    下载地址:网盘下载 <Unity 5.x游戏开发指南>详细介绍了Unity3D 5.0的各个主要系统,包括地形系统.脚本系统.动画系统.界面系统.音频系统.网络通讯系统和2D系统,并通过大 ...

  7. 【通知】▁▂▃ Himi 最新著作《iOS游戏编程之从零开始—Cocos2d-x与cocos2d引擎游戏开发》★书籍源码+第4/5/6样章★-免费下载★ ▃▂▁

    2013年新年,Himi的第二本著作:<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>一书正式发售: (大家可以到新华书店.淘宝.拍拍.当当.亚马逊等进行购买) ...

  8. 最全面的Unity游戏开发指南视频教程 第2卷

    最全面的Unity游戏开发指南视频教程 第2卷 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小 ...

  9. 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数

    本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...

最新文章

  1. 最近做了一个搜索接口的优化,反复压测了四次,终于达到要求了
  2. 规格表管理之删除规格表数据
  3. ***帮兄设计实战分析
  4. 22个超详细的 JS 数组方法
  5. informix报错244_关于informix的配置问题
  6. JavaScript 游动层onmouseover
  7. strlen函数实现
  8. 设计模式002:简单工厂模式
  9. java swing画三角形_如何使用Java Swing编写肮脏的渐变绘制边框
  10. 拦截器BridgeInterceptor分析
  11. [转载] python 函数参数类型检查
  12. jquery中的ajax方法参数
  13. 腾讯 android 插件,腾讯 Bugly for Xamarin Android 的插件
  14. c#使用私有构造方法
  15. python linux调试_linux怎么调试python
  16. 自定义百度网盘提取码
  17. Chrom安装Axure插件浏览原型图
  18. 计算机无法关闭密码保护,Windows 10不会关闭密码保护共享
  19. Summary——CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark
  20. 冯诺依曼体系结构(现代计算机的原型)+cpu的两个核心指标

热门文章

  1. mysql dba系统学习(16)mysql的mysqldump备份 mysql dba系统学习(17)mysql的备份和恢复的完整实践
  2. Java访问指示符 访问修饰符
  3. 高等数学:第十二章 微分方程(2)一阶线性非齐次微分方程、全微分方程、可降阶的微分方程
  4. 数字图像处理:第四章 点运算
  5. 编程之美-求二进制数中1的个数方法整理
  6. 编程之美-连连看游戏设计方法整理
  7. 30 天精通 RxJS (01):认识 RxJS
  8. 一个类实现多个接口的demo
  9. 怎样推断一棵二叉树是全然二叉树
  10. openoffice 安装后中文字符乱码问题