疯狂java


您现在的位置: 疯狂软件 >> 疯狂Java教材 >> 正文

Cocos2d-x 3.x游戏开发实战


Cocos2d-x 3.x游戏开发实战

   内容简介

  《Cocos2d-x 3.x游戏开发实战》是一本介绍Cocos2d-x游戏引擎的实用图书,全面介绍了最新的Cocos2d-x 3.2游戏引擎各方面的知识。

  《Cocos2d-x 3.x游戏开发实战》从内容层次上可分为四个部分。第一部分介绍了游戏开发的基础知识、游戏引擎概念、Cocos2d-x的下载与安装,以及跨平台开发环境的搭建。第二部分介绍了Cocos2d-x中的核心类、动作、动画、3D特效、文字、字体、菜单、事件处理、UI控件、声音和数据存储等知识。第三部分介绍了Cocos2d-x的粒子系统、Tile地图、最新的物理引擎、内存管理机制。最后一部分详细介绍了Cocos2d-x官方提供的游戏开发工具Cocos Studio。

  《Cocos2d-x 3.x游戏开发实战》针对每一个知识点都通过相应的程序给出了示范,并结合Cocos2d-x自带的cpp-tests实例进行讲解,在总结一些知识点之后还开发了一些小游戏,目的是让读者全面掌握Cocos2d-x的基础理论和基本使用。

 

  目录

  第1章 Cocos2d-x游戏引擎介绍 1

  1.1 什么是游戏引擎 2

  1.2 Cocos2d游戏引擎 2

  1.2.1 Cocos2d的发展 2

  1.2.2 Cocos2d的特点 4

  1.2.3 Cocos2d的现在和未来 4

  1.3 Cocos2d-x游戏引擎 4

  1.3.1 选择Cocos2d-x的理由 5

  1.3.2 Cocos2d-x的主要功能 6

  1.3.3 Cocos2d-x 3.0版本的各语言优化 7

  1.3.4 Cocos2d-x 3.0的新特性 8

  1.3.5 使用了Cocos2d-x的游戏 10

  1.4 本章小结 11

  第2章 跨平台开发环境的搭建 12

  2.1 搭建iOS下的开发环境 13

  2.1.1 Cocos2d-x的安装与配置 14

  2.1.2 Cocos2d-x项目结构和代码分析 15

  2.2 搭建Windows下的开发环境 25

  2.2.1 Cocos2d-x的安装与配置 25

  2.2.2 Cocos2d-x工程目录和代码分析 27

  2.3 搭建Android下的开发环境 29

  2.3.1 软件的安装与环境变量配置 30

  2.3.2 构建Cocos2d-x工程 31

  2.3.3 在Eclipse下运行程序 32

  2.4 本章小结 34

  第3章 Cocos2d-x的核心类 35

  3.1 节点类(Node) 36

  3.1.1 Node类的成员变量 36

  3.1.2 Node类的函数 38

  3.1.3 坐标系 41

  示例:测试锚点――AnchorPointTest 43

  示例:测试Node类的常用函数――NodeTest 45

  3.2 场景类(Scene) 48

  3.2.1 TransitionScene场景切换 48

  3.2.2 Cocos2d-x支持的场景过渡效果 48

  3.3 层类(Layer) 50

  3.3.1 Layer类的常用成员变量 50

  3.3.2 Layer类的常用函数 50

  3.4 导演类(Director) 51

  3.4.1 Director导演类常用的成员变量 51

  3.4.2 Director导演类常用的函数 52

  3.4.3 Director导演类在游戏初始化时的使用分析 53

  3.5 精灵类(Sprite) 54

  3.5.1 纹理的相关概念 54

  3.5.2 Sprite精灵类的常用成员变量 55

  3.5.3 Sprite精灵类的常用函数 55

  示例:测试Sprite类的常用函数――SpriteTest 57

  3.5.4 SpriteFrame精灵帧类 59

  3.5.5 SpriteFrameCache精灵帧缓存类 60

  3.5.6 SpriteBatchNode精灵表单类 60

  示例:测试SpriteFrameCacheTest精灵帧缓存类――SpriteFrameCacheTest 62

  3.5.7 制作精灵表单 64

  示例:测试自己制作的精灵表单――SpriteSheetTest 67

  3.6 Cocos2d-x 3.0新的数据结构 68

  3.6.1 cocos2d::Vector 69

  示例:测试cocos2d::Vector类的常用函数――VectorTest 70

  3.6.2 cocos2d::Map

  示例:测试cocos2d::Map

  3.6.3 cocos2d::Value 76

  示例:测试cocos2d::Value类的常用函数――ValueTest 77

  3.7 本章小结 79

  第4章 Cocos2d-x的动作和动画 80

  4.1 动作基类Action 81

  4.1.1 Action类的常用成员变量 82

  4.1.2 Action类的常用函数 82

  4.1.3 Action类的子类 82

  4.2 示例:测试基本动作――ActionBasicTest 84

  4.2.1 显示、隐藏、闪烁动作 85

  4.2.2 淡入淡出动作 87

  4.2.3 色彩值渐变动作 89

  4.2.4 移动动作 92

  4.2.5 跳跃动作 95

  4.2.6 缩放动作 98

  4.2.7 旋转动作 101

  4.3 示例:测试组合动作――ActionCombinationTest 104

  4.4 示例:测试可变速度动作――ActionEaseTest 108

  4.4.1 EaseIn、EaseOut和EaseInOut 109

  4.4.2 EaseSineIn、EaseSineOut和EaseSineInOut 111

  4.4.3 EaseExponentialIn、EaseExponentialOut和EaseExponentialInOut 111

  4.4.4 EaseBounceIn、EaseBounceOut和EaseBounceInOut 112

  4.4.5 EaseElasticIn、EaseElasticOut和EaseElasticInOut 112

  4.5 示例:测试速度动作――ActionSpeedTest 112

  4.6 示例:测试跟随动作――ActionFollowTest 114

  4.7 示例:测试延迟动作――ActionDelayTest 116

  4.8 示例:测试函数回调动作――ActionCallFuncTest 117

  4.9 Cocos2d-x中与动画相关的类 122

  4.10 示例:英雄舞剑动画 124

  4.11 示例:僵尸走路动画 125

  4.12 示例:使用动画帧缓冲实现动画 127

  4.13 示例:制作精灵表单实现动画 129

  4.14 Cocos2d-x新增的3D特性fbv-conv的用法 132

  4.15 示例:Sprite3D创建3D精灵 133

  4.16 示例:Animation3D创建3D动画 135

  4.17 本章小结 137

  第5章 Cocos2d-x的文本渲染系统和菜单 138

  5.1 文本渲染相关的类 138

  5.2 TTF类型标签LabelTTF 139

  示例:测试LabelTTF类――LabelTTFTest 139

  5.3 BMFont标签类LabelBMFont 141

  示例:测试LabelBMFont类――LabelBMFontTest 143

  5.4 Atlas标签类LabelAtlas 144

  示例:测试LabelAtlas类――LabelAtlasTest 145

  5.5 Cocos2d-x新增的标签类Label 147

  示例:测试Label类――LabelTest 148

  5.6 菜单类Menu 150

  5.7 菜单项MenuItem和常用子类 151

  5.7.1 标签菜单项(MenuItemLabel) 151

  5.7.2 自定义字体菜单项(MenuItemAtlasFont) 152

  5.7.3 字体菜单项(MenuItemFont) 152

  5.7.4 精灵菜单项(MenuItemSprite) 152

  5.7.5 图片菜单项(MenuItemImage) 152

  5.7.6 触发器菜单项(MenuItemToggle) 153

  示例:测试菜单――MenuTest 153

  5.8 本章小结 157

  第6章 Cocos2d-x的事件处理机制 158

  6.1 事件处理机制 158

  6.1.1 接收数据(Touch) 159

  6.1.2 分发事件(EventDispatcher) 160

  6.1.3 处理响应(EventListener) 161

  6.2 触摸事件 162

  6.2.1 单点触摸事件(EventListenerTouchOneByOne) 162

  示例:场景优先事件监听――TouchOneByOneTest 162

  示例:滑动屏幕选择菜单――TouchOneByOneTest 167

  示例:固定值优先事件监听――TouchPriorityTest 172

  6.2.2 多点触摸事件(EventListenerTouchAllAtOnce) 176

  示例:多点触摸(缩放功能的实现)――TouchAllAtOnceTest 176

  6.3 加速度计事件(EventListenerAcceleration) 180

  示例:滚动的小球――AccelerometerTest 180

  6.4 按键事件(EventListenerKeyboard) 184

  6.5 鼠标事件(EventListenerMouse) 184

  6.6 自定义事件(EventListenerCustom) 185

  示例:自定义事件处理――CustomTest 186

  6.7 本章小结 188

  第7章 Cocos2d-x的常用控件 189

  7.1 Cocos2d-x的控件 189

  7.1.1 按钮类ControlButton 191

  示例:测试按钮――ControlButtonTest 192

  7.1.2 拖动滑块类ControlSlider 196

  示例:测试拖动滑块――ControlSliderTest 196

  7.1.3 开关按钮类ControlSwitch 198

  示例:测试开关按钮――ControlSwitchTest 199

  7.2 Cocos Studio中的UI控件 201

  7.2.1  Widget(所有UI控件的父类) 202

  7.2.2 Button(按钮) 205

  示例:测试UI控件――UITest 205

  7.2.3 Text(文本) 211

  7.2.4 TextField(文本框) 213

  7.2.5 CheckBox(复选框) 217

  7.2.6 ImageView(图片) 219

  7.2.7 LoadingBar(进度条) 221

  7.2.8 Slider(滑动条) 223

  7.2.9 Layout(布局容器) 225

  7.2.10 ScrollView(滚动层容器) 231

  7.2.11 ListView(列表层容器) 235

  7.2.12 PageView(分页层容器) 238

  7.3 本章小结 241

  第8章 Cocos2d-x的声音系统和数据存储 242

  8.1 声音系统 242

  8.1.1 背景音乐和声音特效 242

  8.1.2 CocosDenshion库 243

  8.1.3 SimpleAudioEngine类 243

  示例:背景音乐和音效控制――SimpleAudioEngineTest 245

  8.2 数据存储 255

  8.2.1 UserDefault类 255

  示例:用户数据存储测试――UserDefaultTest 257

  8.3 本章小结 260

  第9章 射击类游戏:疯狂打飞机 261

  9.1 游戏简介 261

  9.2 添加游戏菜单 262

  9.3 预加载游戏资源 268

  9.4 玩家飞机飞行效果 273

  9.5 玩家飞机Touch实现 276

  9.6 背景滚动效果 278

  9.7 添加敌机 280

  9.8 玩家飞机发射子弹 284

  9.9 背景音乐和积分统计 288

  9.10 游戏大Boss 290

  9.11 本章小结 296

  第10章 粒子系统 297

  10.1 粒子系统相关的类 297

  10.1.1 ParticleSystem类 297

  10.1.2 ParticleSystemQuad类 303

  10.1.3 ParticleBatchNode类 303

  10.2 粒子系统的使用 303

  示例:使用内置的粒子系统――ParticleEffectTest 305

  示例:自己定制粒子系统――MyParticleTest 306

  10.3 使用Particle Designer工具制作粒子 310

  示例:使用plist文件创建粒子系统――ParticleDesignerTest 312

  示例:休闲类游戏――疯狂打地鼠 313

  10.4 本章小结 337

  第11章 瓦片地图 338

  11.1 下载和安装Tiled地图编辑器 338

  11.2 使用Tiled绘制地图 339

  11.3 Tiled地图相关的类 345

  11.3.1 TMXTiledMap类 345

  11.3.2 TMXLayer类 346

  11.3.3 TMXObjectGroup类 347

  示例:使用Tiled地图――TileMapTest 348

  11.4 本章小结 353

  第12章 真实手游:萌仙 354

  12.1 设计地图场景 354

  12.2 载入地图 355

  12.3 地图的移动 358

  12.4 遮挡效果和设置障碍物 362

  12.5 寻路算法 365

  12.6 随机出现怪物 375

  12.7 玩家和怪物进行战斗 380

  12.8 本章小结 388

  第13章 Cocos2d-x的物理引擎 389

  13.1 物理引擎概述 389

  13.2 Box2D的核心概念 390

  13.3 Box2D中常用的属性和函数 393

  13.4 Box2D示例项目分析 394

  13.5 Cocos2d-x和Box2D的整合开发 402

  13.6 Box2D开发步骤 404

  13.7 Cocos2d-x 3.0中的物理引擎 405

  13.7.1 PhysicsWorld类 405

  13.7.2 PhysicsBody类 406

  13.7.3 PhysicsShape类 408

  13.8 使用3.0的物理引擎开发项目 409

  示例:测试3.0新增的物理引擎――PhysicsTest 409

  13.9 益智类游戏:愤怒的小鸟 412

  13.9.1 开始前的准备工作 412

  13.9.2 进度条制作 412

  13.9.3 游戏中的粒子效果 415

  13.9.4 游戏选关操作 420

  13.9.5 设计关卡数据 425

  13.9.6 设计精灵类 428

  13.9.7 游戏主界面 431

  13.9.8 弹弓发射小鸟 435

  13.9.9 物理引擎 441

  13.9.10 物理碰撞 445

  13.9.11 游戏过关设计 448

  13.10 本章小结 452

  第14章 Cocos2d-x的内存管理 454

  14.1 内存管理概述 454

  14.2 手动内存管理 455

  14.2.1 对象的引用计数 455

  14.2.2 对象所属权 458

  14.2.3 函数中的保留和释放 461

  14.2.4 使用自动释放池 462

  14.2.5 手动内存管理总结 465

  14.3 自动释放池 465

  14.3.1 Ref的引用计数 465

  14.3.2 AutoreleasePool自动释放池 468

  14.3.3 PoolManager自动释放池管理器 471

  14.3.4 create函数 474

  14.4 本章小结 476

  第15章 塔防类游戏:保卫公主 477

  15.1 设计关卡地图场景 477

  15.2 游戏菜单 479

  15.3 选择关卡 482

  15.4 加载关卡数据 489

  15.5 准备进入游戏 497

  15.6 随机出现怪物 503

  15.7 建造炮塔 508

  15.8 旋转炮塔 511

  15.9 检测碰撞 515

  15.10 游戏结束 517

  15.11 本章小结 520

  第16章 Cocos Studio 521

  16.1 Cocos Studio概述 521

  16.2 Cocos Studio安装 521

  16.3 Cocos Studio特性 523

  16.4 Cocos Studio界面 523

  16.4.1 界面布局 523

  16.4.2 起始页面 524

  16.4.3 渲染面板 524

  16.4.4 动画帧面板 525

  16.4.5 属性面板 526

  16.4.6 资源面板 526

  16.4.7 控件面板 527

  16.4.8 快捷工具面板 527

  16.5 UI编辑器的使用 528

  示例:测试UI编辑器――CocosStudioTest 528

  16.5.1 按钮和文本框控件 528

  16.5.2 进度条控件 535

  16.5.3 滑动条控件 537

  16.5.4 层容器控件 539

  16.5.5 滚动层容器控件 540

  16.5.6 分页层容器控件 543

  16.5.7 UI动画制作 545

  16.6 本章小结 549