《Cocos2d x手机游戏开发与项目实战详解》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:沈大海著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302350866
  • 页数:486 页
图书介绍:本书大体分为3大部分,第一部分是开发基础,介绍移动游戏的基本概念和游戏开发的流程。第二部分是Cocos2d-x的基本知识,介绍IOS、Android平台开发的基础知识和Cocos2d-x引擎本身的基本概念;第三部分是项目实战,结合不同类型的游戏产品来讲解引擎的使用以及在开发中的相关技巧和经验。

第1章 移动游戏概述 1

本章概述 1

必备知识 1

学习重点 1

1.1移动游戏概述 1

1.2移动游戏类型 2

1.2.1角色扮演游戏(RPG) 2

1.2.2动作游戏(ACT) 3

1.2.3冒险游戏(AVG) 4

1.2.4策略类游戏(SLG) 5

1.2.5即时战略游戏(RTS) 6

1.2.6格斗游戏(FGT) 7

1.2.7射击类游戏(STG) 8

1.2.8第一人称视角射击类游戏(FPS) 10

1.2.9休闲益智游戏(PZL) 11

1.2.10竞速游戏(RCG) 13

1.2.11体育游戏(SPT) 14

1.2.12养成类游戏(TCG) 15

1.2.13卡牌类游戏(CAG) 16

1.2.14桌面游戏(TAB) 17

1.2.15音乐游戏(MSC) 18

1.3手机游戏市场现状 19

1.4主流手机游戏系统平台 19

1.4.1 Android 19

1.4.2 iOS 20

1.4.3 Windows Phone 21

1.5 Cocos2d-x跨平台开源引擎概述 22

1.5.1 Cocos2d-x引擎原理 23

1.5.2 Cocos2d-x引擎的优点 23

1.5.3 Cocos2d-x的成功案例 24

1.6手机游戏开发基本流程 25

1.6.1游戏创意的产生 26

1.6.2将游戏创意变成游戏产品 26

1.6.3游戏是怎么产生的 27

1.6.4把游戏安装到用户的手机中 27

思考问题 27

第2章 移动策划和美术 28

本章概述 28

必备知识 28

学习重点 28

2.1分析用户的需求 28

2.1.1人类需求层次分析 28

2.1.2游戏玩家的基本需求 30

2.1.3游戏设计的一般规则 31

2.2移动游戏市场分析 33

2.2.1游戏类型排行分析 33

2.2.2休闲与闯关相结合的游戏榜位上升最快 33

2.2.3榜位下降游戏类型分布零散,重度游戏相对较多 34

2.2.4单机游戏仍为移动端游戏主流 34

2.2.5网络游戏中卡牌类游戏较受玩家欢迎 35

2.2.6市场分析总结 35

2.3游戏创意与规划 36

2.3.1游戏创意的基础 36

2.3.2创意说明——记录并介绍你的游戏创意 38

2.4游戏背景——文化、故事、主题 39

2.5游戏结构——单线性、非线性 40

2.5.1单线性结构 41

2.5.2非线性结构 41

2.6游戏中的角色——扮演类角色与非扮演类角色 43

2.6.1形象设定 43

2.6.2背景设定 43

2.6.3性格设定 44

2.6.4属性设定 44

2.6.5成长路线设定 44

2.7游戏元素设定 45

2.7.1游戏元素的定义 45

2.7.2游戏元素设定原则与方法 45

2.8游戏机制设定 46

2.8.1游戏机制定义与作用 46

2.8.2游戏机制中的相关事件 46

2.8.3事件构成要素 46

2.8.4游戏机制编写与设定原则 48

2.9人工智能定义 50

2.9.1人工智能的作用 50

2.9.2人工智能设定方法 51

2.9.3人工智能文档编写 52

2.10游戏进程设定 52

2.11游戏场景设定 54

2.12游戏界面设定 54

2.12.1游戏运行平台屏幕适配 54

2.12.2界面的分级与布局设定 54

2.13游戏系统说明 55

2.14游戏脚本编写 56

2.15游戏策划案编写实例 57

2.15.1游戏概述 58

2.15.2游戏设计 59

2.15.3游戏界面设计 64

2.15.4游戏文字资源及对话 66

2.15.5游戏图片资源列表 66

2.16游戏美术的实现 67

2.16.1菜单的绘制 67

2.16.2主角的绘制 68

2.16.3地图的绘制 69

2.16.4道具的绘制 69

2.16.5游戏美术实现流程 70

2.17 UI设计规则和规范 70

2.17.1易用性 70

2.17.2规范性 71

2.17.3合理性 72

2.18游戏原型的设定与实现 72

2.18.1游戏原型定义与意义 72

2.18.2游戏原型制作工具 72

2.18.3游戏原型设定基础 73

2.18.4游戏原型设定流程 73

2.18.5游戏原型实现与团队配合 74

思考问题 75

第3章 移动游戏编程概述 76

本章概述 76

必备知识 76

学习重点 76

3.1如何学习编程语言 76

3.1.1游戏编程从C语言开始 76

3.1.2如何学习编程语言 77

3.2了解程序运行原理 77

3.2.1机器语言 78

3.2.2汇编语言 78

3.2.3高级语言 78

3.2.4解释执行 78

3.2.5编译执行 78

3.2.6 Java语言的特点 79

3.2.7 C、C++语言概述 79

3.3从Hello World开始 80

3.4入门三板斧——变量、数据类型、表达式 81

3.4.1基本数据类型 81

3.4.2变量的定义与应用 82

3.4.3整型变量 82

3.4.4实型变量 83

3.4.5字符变量 84

3.4.6运算符和表达式的概念 85

3.4.7运算符的分类 86

3.5算法和程序流程 87

3.5.1流程控制语句的分支结构 87

3.5.2分支结构的形式 87

3.5.3条件表达式 89

3.5.4 switch语句 89

3.5.5流程控制语句的循环结构 90

3.5.6 while语句 90

3.5.7 do-while语句 91

3.5.8 for语句 91

3.5.9流程嵌套和算法 92

3.6数组和字符串 93

3.6.1数组类型说明 93

3.6.2数组元素的表示方法 94

3.6.3数组的赋值 94

3.6.4二维数组定义 97

3.6.5二维数组元素的表示方法 97

3.6.6二维数组的初始化 97

3.6.7字符数组定义与赋值 98

3.6.8字符数组与字符串 99

3.6.9字符串常用函数 100

3.7函数和指针 101

3.7.1函数的分类 101

3.7.2库函数 102

3.7.3函数的定义 102

3.7.4函数调用 103

3.7.5函数的参数和返回值 103

3.7.6引用 104

3.7.7引用变量的说明 105

3.7.8引用和指针的比较 105

3.7.9引用型参数 106

3.7.10默认参数的使用 106

3.7.11函数重载 107

3.7.12指针的概念 109

3.7.13指针变量的定义与赋值 110

3.7.14指针变量的赋值 110

3.7.15指针变量的引用 111

3.7.16指针变量的运算 111

3.7.17数组指针变量 114

3.7.18数组名和数组指针变量作函数参数 116

3.7.19指向多维数组的指针变量 116

3.7.20二维数组指针变量 117

3.7.21指针与字符串 117

3.7.22函数指针 118

3.7.23指针函数 119

3.7.24指针数组 119

3.7.25多级指针 120

3.7.26动态内存分配 120

3.7.27 C++中的内存管理 122

3.8结构体和共用体、枚举类型 123

3.8.1结构类型的定义 124

3.8.2结构变量成员的访问 126

3.8.3结构数组 126

3.8.4结构指针变量 127

3.8.5通过结构指针变量访问结构变量成员 128

3.8.6联合类型的定义 129

3.8.7联合类型变量的定义 130

3.8.8联合变量的赋值和使用 131

3.8.9枚举类型的定义与应用 133

3.8.10类型定义符typedef 135

3.9类和对象 136

3.9.1类的特征 136

3.9.2类的定义 137

3.9.3成员函数的定义 139

3.9.4对象的定义 142

3.9.5访问对象的成员 142

3.9.6对象的作用域与生存期 143

3.9.7 this指针 145

3.9.8构造函数 145

3.9.9析构函数 146

3.9.10构造函数与析构函数示例 147

3.9.11静态成员 148

3.10类的继承性 148

3.10.1继承的类型 149

3.10.2继承后的访问权限 149

3.10.3派生类的构造函数和析构函数 150

3.11类的多态性 151

3.11.1函数重载与静态联编 151

3.11.2虚函数及动态联编 152

3.11.3纯虚函数与抽象基类 154

3.12模板类和模板函数 159

3.12.1函数模板概念 159

3.12.2函数模板应用举例 161

3.12.3类模板 163

3.12.4使用类型参数和普通参数的类模板 168

3.12.5 STL 169

3.13数据结构 171

3.13.1链表 172

3.13.2堆栈 172

3.13.3队列 173

3.13.4树 173

3.14 Cocos2d-x游戏开发中的编程技术 173

3.14.1用户交互事件 173

3.14.2图形绘制、多媒体处理 174

3.14.3文件保存 174

3.14.4网络连接 174

3.14.5游戏逻辑 174

思考问题 174

第4章 Cocos2d-x介绍和开发环境搭建 175

本章概述 175

必备知识 175

学习重点 175

4.1 Cocos2d-x介绍 176

4.1.1 Cocos2d-x的优点 176

4.1.2 Cocos2d-x的功能 177

4.1.3 Cocos2d-x的学习路径 177

4.2 Cocos2d-x源码下载和Demo运行 178

4.3 Cocos2d-x在不同平台的安装 180

4.3.1使用VS2012开发Cocos2d-x项目 180

4.3.2使用XCode开发Cocos2d-x项目 181

4.4创建Cocos2d-x的Hello World项目 181

4.4.1创建Cocos2d-x项目 181

4.4.2 Cocos2d-x项目目录解析 182

4.4.3编译运行Hello World项目 183

4.5 iOS平台Hello World项目解析 184

4.5.1 Cocos2d-x的引擎框架 184

4.5.2 iOS平台的入口文件main.mm 185

4.5.3 iOS平台的代理对象AppController 187

4.5.4 Cocos2d-x的入口类CCApplication 190

4.5.5 Cocos2d-x的导演类CCDirector 193

4.5.6 Hello World项目的入口类AppDelegate 194

4.5.7 Hello World项目的场景类HelloWorldScene 196

4.6将Hello World项目在Android平台发布 200

4.6.1复制Cocos2d-x的Android层源码到项目 201

4.6.2 Android开发环境准备 202

4.6.3设置编译环境 203

4.6.4修改Makefile文件 204

4.6.5通过NDK来编译Cocos2d-x源代码 204

4.6.6通过aapt打包工具或eclipse打包项目 205

思考问题 206

第5章 Cocos2d-x核心技术 207

本章概述 207

必备知识 207

学习重点 207

5.1 Cocos2d-x核心概念 207

5.1.1导演CCDirector 208

5.1.2场景CCScene 209

5.1.3 CCTransitionScene场景切换 209

5.1.4绘图节点CCNode和图层CCLayer 210

5.2在CCLayer处理图层交互 216

5.2.1在CCLayer处理用户触摸 216

5.2.2实现多点触摸 216

5.2.3实现重力感应传感器交互 217

5.3在CCLayer实现《贪食蛇》游戏实例 217

5.4菜单CCMenu、文字CCLabelTTF 228

5.4.1标签菜单项 229

5.4.2精灵菜单项 229

5.4.3触发器菜单项 229

5.4.4文本渲染CCLabelAtlas 230

5.4.5文本渲染CCLabelTTF 231

5.4.6文本渲染CCLabelBMFont 231

5.5节点动作CCAction 231

5.5.1CCAction 233

5.5.2 CCFiniteTimeAction 233

5.5.3在CCNode运行动作 234

5.5.4 CCActionManager 234

5.5.5 CCRepeat和CCRepeatForever 235

5.5.6 CCSequence和CCSpawn 235

5.5.7 CCReverseTime 235

5.5.8 CCSpeed和CCEaseAction 235

5.5.9 CCFollow 236

5.6 CCCamera控制摄像机 237

5.7 CCArray和CCDictionary容器类介绍 237

5.7.1 CCArray常用函数 237

5.7.2 CCDictionary的常用函数 238

5.7.3集合类在游戏开发中的使用 238

5.8 Cocos2d-x内存管理 238

5.8.1 Cocos2d-x内存管理机制 239

5.8.2图片的缓存和加载方式 239

5.8.3常见的内存管理的方法 239

5.8.4引用计数策略 240

5.9纹理CCTexture2D和精灵CCSprite 241

5.9.1根据图片文件创建CCSprite 241

5.9.2根据CCTexture2D纹理对象创建CCSprite 242

5.9.3使用CCSpriteFrame创建CCSprite 242

5.9.4使用CCAnimate和CCAnimation创建动画 250

5.9.5使用CCSpriteBatchNode创建CCSprite 250

5.9.6 AnimatePacker动画文件的读取 251

5.10声音和数据保存 261

5.10.1使用SimpleAudioEngine播放音乐和音效 261

5.10.2使用CCUserDefault实现基本数据的存取 263

5.11粒子效果 264

5.11.1 CCParticleSystem类实现 264

5.11.2根据图片创建粒子系统 265

5.11.3根据属性创建粒子系统 265

5.11.4使用粒子效果编辑器 267

5.11.5实现粒子编辑器*.plist文件的导入 270

5.12 Box2D物理引擎 271

5.12.1 Box2D引擎介绍 271

5.12.2创建第一个Box2D程序 272

5.12.3精简版的愤怒的小鸟 283

5.13瓦片地图 297

5.13.1瓦片地图TileMap介绍 297

5.13.2 Tiled Map Editor简介 297

5.13.3 Tiled Map Editor生成一个新的瓦片地图 298

5.13.4在Cocos2d-x导入地图 301

5.13.5在地图文件中获取对象层数据 301

5.14 Cocos2d-x工具介绍 302

5.14.1 Cocos2d-x官方工具包CocosStudio 303

5.14.2动画编辑工具AnimatePacker 303

5.14.3位图字体工具 303

5.14.4粒子编辑工具 303

5.14.5物理编辑工具 303

5.14.6骨骼动画编辑器Spine 304

5.14.7场景编辑工具 304

5.14.8纹理地图集工具 304

5.14.9瓦片地图编辑工具 304

5.14.10声音特效编辑工具CFXR 304

5.14.11背景音乐编辑工具GarageBand 305

5.15 Demo程序介绍 305

思考问题 308

第6章 Cocos2d-x游戏案例——《飞机大战》 309

本章概述 309

必备知识 309

学习重点 309

6.1项目执行效果 309

6.2美术素材清单 309

6.3项目整体架构 317

6.3.1入口类定义AppDelegate.h和AppDelegate.cpp 318

6.3.2菜单场景实现 319

6.3.3关于场景实现 322

6.3.4游戏结束场景实现 325

6.3.5游戏场景实现 328

6.4实现游戏场景中的各个元素 338

6.4.1实现背景 338

6.4.2实现飞机 340

6.4.3实现子弹 343

6.4.4实现爆炸效果 349

6.4.5实现BOSS 351

6.4.6实现道具 355

6.4.7全局数据保存 358

6.5项目总结 359

思考问题 359

第7章 Cocos2d-x引擎二次封装DeepBlueX 360

本章概述 360

必备知识 360

学习重点 360

7.1 DeepBlueX简介 360

7.1.1整体架构说明 361

7.1.2 DeepBlueX项目开发流程 361

7.2 DeepBlueX核心类介绍 362

7.2.1游戏入口类JH_GameApp 362

7.2.2 J H_ GameBase游戏逻辑基类 366

7.2.3使用DeepBlueX实现《飞机大战》 374

7.3 DeepBlueX功能类介绍 380

7.3.1精灵管理类JH_Sprite 380

7.3.2动画管理类J H _Animation 388

7.3.3动画信息存储类Animation和plistAnimation 390

7.3.4图片存储类J H_Image 405

7.3.5文字处理类J H_String 407

7.4 DeepBlueX游戏开发案例——《打僵尸》 410

7.4.1游戏运行效果 411

7.4.2游戏美术素材 411

7.4.3游戏逻辑实现 416

思考问题 421

第8章 Cocos2d-x网络编程 422

本章概述 422

必备知识 422

学习重点 422

8.1 Cocos2d-x网络游戏的基本架构 422

8.1.1 Internet和TCP/IP协议 423

8.1.2长连接和短连接 423

8.2使用Libcurl实现Http请求 424

8.2.1在Mac平台部署Apache和PHP Web服务器 425

8.2.2安装MySQL数据库定义数据表 425

8.2.3实现PHP动态页面设置 426

8.2.4实现Cocos2d-x访问Web服务器 428

8.2.5实现数据获取和Post请求 435

8.3 BSDSocket实现Cocos2d-x Socket编程 436

8.3.1 BSDSocket源码说明 436

8.3.2使用C++实现BSDScoket服务器 444

8.3.3 Cocos2d-x实现BSDScoket网络客户端 446

8.3.4实现BSDScoket网络多人在线服务器端 451

8.4 JSON解析 453

8.4.1 JSON介绍 453

8.4.2 JSONCPP介绍 454

8.4.3 JSONCPP解析示例 454

8.4.4 JSONCPP的使用 455

8.5 Mina服务器编程 457

8.5.1使用MINA实现计算服务器 458

8.5.2 I/O服务 460

8.5.3 I/O接收器 460

8.5.4 I/O连接器 461

8.5.5 I/O会话 461

8.5.6 I/O过滤器 461

8.5.7 BlacklistFilter 463

8.5.8过滤器链 464

8.5.9 I/O处理器 464

8.5.10 Apache MINA实现游戏服务器案例 465

思考问题 470

第9章 手机游戏的运营和推广 471

本章概述 471

必备知识 471

学习重点 471

9.1手机游戏的盈利模式 471

9.1.1直接获得收入 472

9.1.2收费手段 472

9.1.3间接获得收入 473

9.2手机游戏的发行模式 474

9.2.1卖断或独家代理 474

9.2.2自主运营模式 475

9.2.3海外授权 475

9.3推广和运营 476

9.3.1推广和运营的整体工作 476

9.3.2认清自身产品的受众群体 477

9.3.3商务渠道策略 477

9.3.4市场推广宣传 478

9.3.5游戏基本素材的准备 478

9.3.6项目预算和产品目标 480

9.4游戏运营核心数据 482

9.4.1游戏的先期评估 482

9.4.2游戏的真实用户测试评估 483

9.4.3游戏的运营核心数据指标 484

9.4.4打造月收入过千万的移动游戏产品 485

9.5 GMGC全球移动游戏联盟 486

9.5.1 GMGC全球移动游戏大会 486

9.5.2 GMGC全球移动游戏月度沙龙 486

思考问题 486