- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5让人物动起来
第 5 章 让人物动起来
在游戏中,无论是主角还是怪物,不可能都是一动不动地停在屏幕上的,即使是卡
牌游戏,也要有一个“翻牌”的动画效果。本章将介绍在 Cocos2d-x 中让游戏“角色”
动起来的方法。这些方法包括了让“角色”实现位置、大小的移动,能够达到与上一章
学习加速度传感器使用的例子中类似的效果,但又是绝对不同的方法。除此之外,还有
实现人物动作的方法,包括使用动画来达到人物运动的效果和对人物动画的帧进行打包
的方法。
本章还将给出一个在RPG 游戏中人物行走的例子,主要知识点有:
在Cocos2d-x 中让精灵进行简单运动的方法。
在Cocos2d-x 中让精灵沿着曲线进行运动。
Cocos2d-x 中动作队列的使用方法。
在Cocos2d-x 中利用动作监听实现卡牌翻转的动画效果。
在Cocos2d-x 中实现动画的方法。
如何打包图片方便动画的创建。
5.1 让精灵进行简单的动作
在真实的世界中,每一个复杂的运动都是由许多个简单的运动组合而成的,因此要
实现复杂的运动效果,首先要知道简单的运动是怎样进行的。尤其是在游戏中,许多时
候只需要进行一些简单的运动就可以达到很高的可玩性。比如经典的俄罗斯方块就仅仅
依靠“方块”的水平和竖直的移动以及翻转来达到游戏的目的。本节将通过例子来展示
在Cocos2d-x 中实现简单运动的方法。
项目ChapterFive01 中展示了若干在Cocos2d-x 中使精灵进行简单运动的方法,其中
5-1
关键部分如范例 所示。
【范例 5-1 】 在Cocos2d-x 使精灵进行简单运动。
01 Sprite m_sprite[5]; //创建5 个精灵类对象
*
02 for (int i = 0; i 5; i++) //通过循环的方式将5 个精灵加入到场景中去
03 {
04 m_sprite[i] = Sprite::create(sprite.png);
05 m_sprite[i]-setScale(0.3); //设置精灵显示的大小
06 m_sprite[i]-setPosition(105 (i + 1), 80);
*
//设置精灵初始坐标,如图5-1 所示
07 addChild(m_sprite[i]); //将精灵加入到场景中去
08 }
第2 篇 Cocos2d-x 基础铺垫
09 //第一个精灵,由坐标(105,80)运动到坐标(200,300)处
10 auto moveto = MoveTo::create(1.2f,Vec2(200,300));
*
// 目的坐标(200,300),运动持续时间1.2秒
11 m_sprite[0]-runAction(moveto); //执行动作
12 //第二个精灵,由坐标(210,80)运动到坐标(310,280)处
13 auto moveby = MoveBy::create(1.2f, Vec2(100, 200));
*
//从坐标(210,80)运动到(310,280)处,相对位移为(100,200)
14 m_sprite[1]-runAction(moveby);
15 //第三个精灵分别在x,y 两个方向进行缩放
16 auto scaleby = ScaleBy::create(1.2f, 2.0f, 0.5f);
*
//横向放大至当前的两倍,纵向缩小为当前的 0.5倍
17 m_sprite[2]-runAction(scaleb
文档评论(0)