Cocos2d-x实战 C++卷PDF电子书下载
- 电子书积分:18 积分如何计算积分?
- 作 者:关东升著
- 出 版 社:北京:清华大学出版社
- 出版年份:2017
- ISBN:9787302454144
- 页数:636 页
第1章 准备开始 1
1.1 本书学习路线图 1
1.2 如何使用实例代码 2
基础篇 7
第2章 Cocos2d-x简介与环境搭建 7
2.1 移动平台游戏引擎简介 7
2.2 Cocos2d家谱 7
2.3 Cocos2d-x设计目标 8
2.4 在Windows平台下开发Cocos2d-x游戏 10
2.4.1 使用Visual Studio开发工具 10
2.4.2 下载和使用Cocos2d-x案例 10
2.4.3 生成API文档 13
本章小结 19
第3章 Hello Cocos2d-x 20
3.1 第一个Cocos2d-x游戏 20
3.1.1 创建工程 20
3.1.2 工程文件结构 23
3.1.3 代码解释 24
3.2 Cocos2d-x核心概念 30
3.2.1 导演 31
3.2.2 场景 31
3.2.3 层 31
3.2.4 精灵 32
3.2.5 菜单 33
3.3 Node与Node层级架构 34
3.3.1 Node中重要的操作 34
3.3.2 Node中重要的属性 35
3.3.3 游戏循环与调度 38
3.4 Cocos2d-x坐标系 39
3.4.1 UI坐标 39
3.4.2 OpenGL坐标 40
3.4.3 世界坐标和模型坐标 40
3.4.4 Win32平台下设置屏幕 45
本章小结 45
第4章 字符串、标签和菜单 46
4.1 Cocos2d-x中的字符串 46
4.1.1 使用const char*和std::string 46
4.1.2 使用cocos2d::String 47
4.1.3 Win32平台下中文乱码问题 48
4.2 使用标签 49
4.2.1 使用标签类Label 50
4.2.2 位图字体 53
4.2.3 图片集标签 54
4.2.4 标签中文无法显示问题 55
4.3 使用菜单 58
4.3.1 文本菜单 59
4.3.2 精灵菜单和图片菜单 62
4.3.3 开关菜单 64
本章小结 66
第5章 精灵 67
5.1 Sprite精灵类 67
5.1.1 创建Sprite精灵对象 67
5.1.2 实例:使用纹理对象创建Sprite对象 68
5.2 精灵的性能优化 70
5.2.1 使用纹理图集 70
5.2.2 使用精灵帧缓存 73
本章小结 76
第6章 场景与层 77
6.1 场景与层的关系 77
6.2 场景过渡 78
6.2.1 场景过渡相关函数 78
6.2.2 场景过渡动画 83
6.3 场景的生命周期 85
6.3.1 生命周期函数 85
6.3.2 多场景过渡生命周期 86
本章小结 88
第7章 动作、特效和动画 89
7.1 动作 89
7.1.1 瞬时动作 90
7.1.2 间隔动作 95
7.1.3 组合动作 100
7.1.4 动作速度控制 106
7.1.5 函数调用 110
7.2 特效 114
7.2.1 网格动作 115
7.2.2 实例:特效演示 116
7.3 动画 120
7.3.1 帧动画 120
7.3.2 实例:帧动画使用 121
本章小结 123
第8章 Cocos2d-x用户事件 124
8.1 事件处理机制 124
8.1.1 事件分发器 125
8.1.2 触摸事件 126
8.1.3 实例:单点触摸事件 128
8.1.4 实例:使用Lambda表达式 132
8.1.5 键盘事件 134
8.1.6 鼠标事件 135
8.2 在层中进行事件处理 136
8.2.1 触摸事件 137
8.2.2 实例:单点触摸事件 138
8.3 加速度计与加速度事件 141
8.3.1 加速度计 142
8.3.2 使用事件分发器 142
8.3.3 使用层加速度计事件 143
8.3.4 实例:运动的小球 144
本章小结 146
进阶篇 149
第9章 游戏背景音乐与音效 149
9.1 Cocos2d-x中音频文件 149
9.1.1 音频文件介绍 149
9.1.2 Cocos2d-x跨平台音频支持 150
9.2 使用Audio引擎 151
9.2.1 音频文件的预处理 151
9.2.2 播放背景音乐 152
9.2.3 停止播放背景音乐 154
9.2.4 背景音乐播放暂停与继续 155
9.3 实例:设置背景音乐与音效 156
9.3.1 AppDelegate实现 156
9.3.2 HelloWorld场景实现 158
9.3.3 设置场景实现 160
本章小结 164
第10章 粒子系统 165
10.1 问题的提出 165
10.2 粒子系统基本概念 166
10.2.1 实例:打火机 166
10.2.2 粒子发射模式 167
10.2.3 粒子系统属性 168
10.3 Cocos2d-x内置粒子系统 170
10.3.1 内置粒子系统 170
10.3.2 实例:内置粒子系统 171
10.4 自定义粒子系统 174
10.4.1 代码创建 174
10.4.2 plist文件创建 177
本章小结 180
第11章 瓦片地图 181
11.1 地图性能问题 181
11.2 Cocos2d-x中瓦片地图API 183
11.3 实例:忍者无敌 185
11.3.1 设计地图 185
11.3.2 程序中加载地图 186
11.3.3 移动精灵 188
11.3.4 检测碰撞 190
11.3.5 滚动地图 195
本章小结 197
第12章 物理引擎 198
12.1 使用物理引擎 199
12.1.1 物理引擎核心概念 199
12.1.2 物理引擎与精灵关系 200
12.2 Cocos2d-x 3.x中物理引擎封装 201
12.2.1 Cocos2d-x 3.x物理引擎API 201
12.2.2 实例:HelloPhysicsWorld 204
12.2.3 实例:接触与碰撞检测 208
12.2.4 实例:使用关节 213
12.3 Box2D引擎 215
12.3.1 Box2D核心概念 215
12.3.2 使用Box2D物理引擎的一般步骤 215
12.3.3 实例:HelloBox2D 216
12.3.4 实例:接触与碰撞检测 221
12.3.5 实例:使用关节 225
本章小结 227
第13章 Cocos2d-x GUI控件 228
13.1 按钮 229
13.2 ImageView 232
13.3 文本控件 233
13.3.1 Text 233
13.3.2 TextBMFont 233
13.3.3 RichText 235
13.4 RadioButton和RadioButtonGroup 237
13.5 CheckBox 239
13.6 LoadingBar 240
13.7 滑块控件 242
本章小结 244
第14章 Cocos2d-x中的3D特性 245
14.1 一些3D概念 245
14.1.1 网格和模型 245
14.1.2 相机 246
14.1.3 投影 246
14.2 使用3D精灵 247
14.2.1 创建Sprite3D对象 247
14.2.2 实例:使用模型和纹理Sprite3D对象 247
14.3 3D模型文件格式 250
14.4 使用相机 251
14.4.1 创建和设置Camera对象 251
14.4.2 实例:使用Camera对象 251
14.5 3D粒子系统 253
14.5.1 创建PUParticleSystem3D对象 253
14.5.2 实例:创建Particle Universe 3D粒子 253
本章小结 256
数据与网络篇 259
第15章 Cocos2d-x数据结构 259
15.1 Cocos2d-x中两大类——Ref和Value 259
15.1.1 Cocos2d-x根类Ref 260
15.1.2 包装类Value 260
15.2 Ref列表结构 261
15.2.1 ___Array结构 262
15.2.2 实例:___Array结构 263
15.2.3 Vector<T>结构 266
15.2.4 实例:Vector结构 268
15.3 Ref字典结构 270
15.3.1 _Dictionary结构 270
15.3.2 实例:_Dictionary结构 272
15.3.3 Map<K,V>结构 276
15.3.4 实例:Map<K,V>结构 277
15.4 Value列表结构——ValueVector 279
15.4.1 ValueVector常用API 279
15.4.2 实例:使用ValueVector结构 280
15.5 Value字典结构——ValueMap和ValueMapIntKey 282
15.5.1 ValueMap和ValueMapIntKey常用API 282
15.5.2 实例:使用ValueMap结构 283
本章小结 286
第16章 数据持久化 287
16.1 使用FileUtils访问文件 287
16.1.1 Cocos2d-x中的目录 287
16.1.2 实例:文件读写 289
16.1.3 实例:路径搜索 292
16.2 持久化概述 294
16.3 UserDefault数据持久化 295
16.3.1 UserDefaultAPI 295
16.3.2 实例:保存背景音乐和音效设置 297
16.4 属性列表数据持久化 303
16.4.1 属性列表概述 303
16.4.2 实例:MyNotes 305
16.4.3 使用_Dictionary读写属性列表文件 305
16.4.4 使用ValueMap读写属性列表文件 310
16.4.5 使用ValueVector读取属性列表文件 313
16.5 SQLite数据库数据持久化 315
16.5.1 SQLite数据库介绍 315
16.5.2 Visual Studio下SQLite数据库开发环境设置 316
16.5.3 实例:重构MyNotes 319
16.5.4 创建数据库 320
16.5.5 SQLite数据库管理工具 322
16.5.6 查询数据 324
16.5.7 修改数据 327
本章小结 330
第17章 数据交换格式 331
17.1 CSV数据交换格式 333
17.1.1 文档结构 333
17.1.2 CSV格式解码 335
17.2 XML数据交换格式 339
17.2.1 文档结构 339
17.2.2 SAX解析 341
17.2.3 DOM解析 347
17.3 JSON数据交换格式 353
17.3.1 文档结构 353
17.3.2 JSON框架jsoncpp和rapidjson比较 355
17.3.3 实例:rapidjson解码 355
17.3.4 实例:rapidjson编码 360
本章小结 363
第18章 基于HTTP的网络通信 364
18.1 网络结构 364
18.1.1 客户端服务器结构网络 364
18.1.2 点对点结构网络 364
18.2 HTTP与HTTPS协议 365
18.3 使用cURL开发客户端 366
18.3.1 cURL与libcurl库 366
18.3.2 Visual Studio下libcurl库开发环境设置 366
18.3.3 实例:重构MyNotes 367
18.4 使用HttpClient开发客户端 375
18.4.1 HttpClientAPI 376
18.4.2 Visual Studio下HttpClient开发环境设置 377
18.4.3 实例:重构MyNotes 378
本章小结 384
第19章 基于Node.js的Socket.IO网络通信 385
19.1 Node.js 385
19.1.1 Node.js安装 385
19.1.2 Node.js测试 386
19.2 使用Socket.IO 388
19.2.1 Socket.IO服务器端开发 388
19.2.2 Cocos2d-x的Socket.IO客户端 390
本章小结 396
设计与优化篇 399
第20章 Cocos2d-x中的常用设计模式 399
20.1 单例设计模式 399
20.1.1 问题提出 400
20.1.2 实现原理 400
20.1.3 应用案例 401
20.2 委托设计模式 401
20.2.1 问题提出 401
20.2.2 实现原理 402
20.2.3 应用案例 403
20.3 观察者设计模式与通知机制 406
20.3.1 问题提出 406
20.3.2 实现原理 407
20.3.3 通知机制 408
本章小结 411
第21章 Cocos2d-x中的内存管理 412
21.1 C++内存管理 412
21.1.1 内存分配区域 412
21.1.2 动态内存分配 413
21.2 Ref内存管理 415
21.2.1 内存引用计数 416
21.2.2 自动释放池 417
21.2.3 Ref内存管理规则 420
21.3 Ref内存管理设计模式 422
21.3.1 使用静态构造函数 422
21.3.2 使用访问器 424
21.4 其他类型内存管理 429
21.4.1 Value内存管理 429
21.4.2 Vector<T>和Map<K,V>内存管理 429
本章小结 430
第22章 性能优化 431
22.1 工具 431
22.1.1 Xcode中Instruments工具使用 431
22.1.2 使用Windows任务管理器 435
22.1.3 Visual Studio内存泄漏检测工具——Visual Leak Detector 437
22.1.4 左下角的文字是什么 441
22.2 使用SpriteBatchNode批次渲染 442
22.3 合理使用缓存 444
22.3.1 场景与资源 445
22.3.2 缓存创建和清除时机 446
22.4 图片与纹理优化 448
22.4.1 选择图片格式 449
22.4.2 拼图 450
22.4.3 纹理像素格式 451
22.4.4 纹理缓存异步加载 452
22.4.5 背景图片优化 455
22.5 声音优化 456
22.5.1 声音格式优化 457
22.5.2 声音预处理与清除 458
22.6 多线程并发访问 458
22.6.1 std::thread多线程技术 459
22.6.2 异步预处理声音 460
22.7 SQLite数据库优化 461
22.7.1 表结构优化 461
22.7.2 查询优化 462
22.7.3 插入(或删除)优化 462
22.8 数据交换格式优化 463
本章小结 465
平台移植篇 469
第23章 从Win32平台到Android平台移植 469
23.1 搭建交叉编译和打包环境 469
23.1.1 Android SDK安装 472
23.1.2 管理Android SDK 473
23.1.3 管理Android开发模拟器 475
23.1.4 Android NDK安装 476
23.1.5 设置环境变量 478
23.2 交叉编译、打包和运行 479
23.2.1 使用cocos命令行工具 479
23.2.2 Android.mk编译文件 481
23.3 移植问题汇总 483
23.3.1 中文乱码问题 483
23.3.2 SQLite3数据库移植问题 484
23.3.3 JSON框架rapidjson移植问题 485
23.3.4 libcurl库移植问题 486
23.3.5 libNetwork库移植问题 487
23.3.6 横屏与竖屏设置问题 488
本章小结 489
第24章 从Win32平台到iOS平台移植 490
24.1 iOS开发环境搭建 490
24.1.1 Xcode安装和卸载 490
24.1.2 Xcode操作界面 493
24.2 从Visual Studio工程到Xcode工程 494
24.2.1 添加源文件 495
24.2.2 添加资源文件 496
24.2.3 Xcode中编译并运行 498
24.3 移植问题汇总 498
24.3.1 中文乱码问题 498
24.3.2 SQLite3数据库移植问题 500
24.3.3 JSON框架rapidjson移植问题 500
24.3.4 libcurl库移植问题 502
24.3.5 声音移植问题 503
24.3.6 使用PVR纹理格式 506
24.3.7 横屏与竖屏设置问题 507
本章小结 508
第25章 Cocos2d-x多分辨率屏幕适配 509
25.1 屏幕适配问题的提出 509
25.2 Cocos2d-x屏幕适配 510
25.2.1 三种分辨率 510
25.2.2 分辨率适配策略 513
25.2.3 纹理图集资源适配 515
25.2.4 瓦片地图资源适配 517
本章小结 517
实战篇 521
第26章 使用Git管理程序代码版本 521
26.1 代码版本管理工具——Git 521
26.1.1 版本控制历史 521
26.1.2 术语和基本概念 522
26.1.3 Git环境配置 522
26.1.4 Git常用命令 523
26.2 代码托管服务——GitHub 526
26.2.1 创建和配置GitHub账号 526
26.2.2 创建代码库 529
26.2.3 删除代码库 531
26.2.4 派生代码库 531
26.2.5 GitHub协同开发 534
26.3 实例:Cocos2d-x游戏项目协同开发 535
26.3.1 提交到GitHub代码库 535
26.3.2 克隆GitHub代码库 538
26.3.3 重新获得GitHub代码库 538
本章小结 539
第27章 Cocos2d-x敏捷开发项目实战——迷失航线手机游戏 540
27.1 迷失航线游戏分析与设计 540
27.1.1 迷失航线故事背景 540
27.1.2 需求分析 540
27.1.3 原型设计 541
27.1.4 游戏脚本 542
27.2 任务1:游戏工程的创建与初始化 542
27.2.1 迭代1.1:创建工程 543
27.2.2 迭代1.2:多分辨率支持 543
27.2.3 迭代1.3:通用类与基类维护 545
27.2.4 迭代1.4:发布到GitHub 548
27.3 任务2:创建Loading场景 548
27.3.1 迭代2.1:添加场景和层 549
27.3.2 迭代2.2:Loading动画 550
27.3.3 迭代2.3:异步加载纹理缓存 550
27.3.4 迭代2.4:异步预处理声音 552
27.4 任务3:创建Home场景 553
27.4.1 迭代3.1:添加场景和层 553
27.4.2 迭代3.2:添加菜单 554
27.5 任务4:创建设置场景 556
27.6 任务5:创建帮助场景 558
27.7 任务6:游戏场景实现 560
27.7.1 迭代6.1:创建敌人精灵 560
27.7.2 迭代6.2:创建玩家飞机精灵 565
27.7.3 迭代6.3:创建炮弹精灵 567
27.7.4 迭代6.4:初始化游戏场景 569
27.7.5 迭代6.5:游戏场景菜单实现 573
27.7.6 迭代6.6:玩家飞机发射炮弹 574
27.7.7 迭代6.7:炮弹与敌人的接触检测 575
27.7.8 迭代6.8:玩家飞机与敌人的接触检测 578
27.7.9 迭代6.9:玩家飞机生命值显示 580
27.7.10 迭代6.10:显示玩家得分情况 581
27.8 任务7:游戏结束场景 582
本章小结 583
第28章 把迷失航线游戏发布到Google play应用商店 584
28.1 谷歌Android应用商店Google play 584
28.2 Android设备测试 585
28.3 还有“最后一公里” 586
28.3.1 添加图标 587
28.3.2 生成数字签名文件 587
28.3.3 应用程序打包 588
28.4 发布产品 589
28.4.1 上传APK 589
28.4.2 填写商品详细信息 591
28.4.3 定价和发布范围 593
本章小结 595
第29章 把迷失航线游戏发布到苹果App Store 596
29.1 苹果的App Store 596
29.2 还有“最后一公里” 598
29.2.1 添加图标 598
29.2.2 添加启动界面 599
29.2.3 修改发布产品属性 603
29.3 iOS设备测试 605
29.3.1 Xcode设置 605
29.3.2 设备设置 608
29.4 为发布进行编译 610
29.4.1 创建开发者证书 610
29.4.2 创建App ID 614
29.4.3 创建描述文件 618
29.4.4 发布编译 619
29.5 发布上架 623
29.5.1 创建应用 623
29.5.2 应用定价 626
29.5.3 基本信息输入 627
29.5.4 上传应用 631
29.5.5 提交审核 632
29.6 常见审核通不过的原因 635
29.6.1 功能问题 635
29.6.2 用户界面问题 635
29.6.3 商业问题 635
29.6.4 不当内容 636
29.6.5 其他问题 636
本章小结 636
- 《Maya 2018完全实战技术手册》来阳编著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《星空摄影后期实战》阿五在路上著 2020
- 《半小时漫画股票实战法》财经杂质著 2019
- 《深度学习与飞桨PaddlePaddle Fluid实战》于祥 2019
- 《数字插画实战 人像创作30例》王鲁光著 2019
- 《2017国家执业药师资格考试 全考点实战通关必备 中药学综合知识与技能 第3版》国家执业药师资格考试命题研究专家组 2017
- 《微软Azure实战参考》李竞,陈勇华编著 2019
- 《Cocos Creator微信小游戏开发实战》王绍明编著 2020
- 《朝与同歌暮与酒》(中国)关东野客 2019
- 《清代宋词学研究》曹明升著 2019
- 《雾都梦话》兰宏升著 2016
- 《昆曲长生殿全集 吟香堂曲谱版》洪升著;周雪华译谱 2018
- 《简明中国声乐史》鞠銮升著 2018
- 《史学内外的范文澜》朱升著 2019
- 《写作教育新论》崔正升著 2018
- 《高职教育的创新发展探索》王升著 2018
- 《现代通信理论与技术研究》李宏升著 2019
- 《浙江文丛 洪升集 上》(清)洪升著;刘辉笺校 2012
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019