《Cocos2d-x 3.x实战 卡牌手游开发指南》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:朱先忠,高嗣慧编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121292729
  • 页数:485 页
图书介绍:本书使用Cocos2d—x游戏引擎技术,带领读者从零开始进行拇指接龙移动游戏的开发。本游戏基于知名传统桌面扑克游戏空当接龙开发而成,其中融入了世界闻名的童话故事《拇指姑娘》主要情节。读者可以通过这个游戏的开发,全面掌握Cocos2d—x游戏跨平台实战开发的主要方法和技巧。本书分为三篇共15章。在第一篇中,我们首先介绍进行Cocos2d—x编程所必需的基础知识。在第二篇中,我们正式转入《拇指接龙游戏》的实战开发,在这一部分知识的编写中我们尽量遵循软件工程开发思路展开介绍,适当穿插Cocos2d—x实战技巧的讲解,并尽量遵循由易到难的原则。在第三篇中,我们转而关注基于Cocos2d—x实战手游跨平台开发、移植和第三方市场SDK嵌入乃至弱联网相关云存储技术的探讨。通过这样三篇知识的逐渐学习,力图使读者以最快的速度掌握基于Cocos2d—x引擎开发技术。

基础篇 2

第1章 Cocos2d-x开发环境搭建 2

1.1 选择Cocos2d-x3.x的理由 2

1.2 C++11主要新特性 2

1.2.1 nullptr 2

1.2.2 auto 3

1.2.3 lambda函数 3

1.2.4 std::function类型 4

1.2.5 C++11多线程std::thread 4

1.3 Windows 7平台开发环境搭建 6

1.3.1 Win32版本开发环境搭建 6

1.3.2 安装Cocos Studio 2.3.3 9

1.3.3 Android版本开发环境搭建 11

1.4 Mac平台开发环境搭建 13

1.4.1 安装Cocos2d-x 3.9开发环境与创建示例工程 13

1.4.2 运行官方示例工程cpp-tests 15

1.4.3 安装Mac版本的Cocos Studio 16

1.4.4 Android开发环境搭建 17

1.5 小结 19

第2章 Photoshop与Flash——独立手游开发者的必修课 21

2.1 Photoshop CS 6鼠绘技巧与示例 21

2.2 与手游UI制作密切相关的Photoshop技术 22

2.2.1 GIF帧动画制作 22

2.2.2 由GIF动画文件导出一组PNG图像文件 27

2.2.3 GIF时间轴动画 28

2.3 Flash CS 6鼠绘技巧与示例 34

2.4 与手游UI制作密切相关的Flash技术 37

2.4.1 生成Sprite表单 38

2.4.2 尽量不把舞台元件实例集合导出到精灵表单 38

2.4.3 导出库元件集到精灵表单时的注意事项 39

2.4.4 Flash动画简介 40

2.4.5 Flash+DragonBone联合制作heart_ani动画 42

2.5 小结 53

第3章 手游辅助开发利器——TexturePacker和ParticleEditor 55

3.1 图片切片工具TexturePacker 55

3.1.1 为什么要用TexturePacker 55

3.1.2 TexturePacker的基本用法 56

3.1.3 Retina支持——AutoSD 58

3.1.4 TextureSettings面板其他参数说明 60

3.1.5 空当接龙游戏使用的碎图打包技术 61

3.1.6 TexturePacker与XCode集成简介 62

3.2 Windows平台免费开源的粒子编辑器ParticleEditor 63

3.2.1 粒子系统属性讲解 65

3.2.2 官方示例工程cPP-tests中粒子系统使用小结 68

3.2.3 让粒子系统沿着指定轨迹运动 74

3.2.4 SplashScreen场景粒子系统应用回顾 76

3.3 小结 76

实践篇 80

第4章 拇指接龙手游整体策划与设计 80

4.1 拇指接龙游戏创意构思及快照欣赏 80

4.1.1 游戏构思 80

4.1.2 传统拇指接龙游戏算法(玩法)回顾 80

4.1.3 传统空当接龙游戏特点分析 82

4.1.4 目前市场同类游戏简单分析 82

4.1.5 旧瓶装新酿的可能性 83

4.1.6 快照预览 83

4.2 拇指接龙游戏整体数据策划与存储方案 84

4.2.1 数据策划与总体算法分析 84

4.2.2 数据存储方案分析 88

4.3 模块及功能图设计 89

4.3.1 系统总体模块及关系图 89

4.3.2 游戏主场景MainScene流程图 90

4.4 小结 92

第5章 Splash场景设计与多分辨率屏幕适配方案 93

5.1 Splash UI设计 93

5.1.1 设计场景图层文件 93

5.1.2 设计场景中的动画文件 94

5.2 后台代码分析 96

5.2.1 SplashScene头文件定义 96

5.2.2 SplashScene实现文件分析 97

5.3 多分辨率适配方案 102

5.3.1 单例类SmartRes头文件定义 102

5.3.2 单例类SmartRes实现代码 104

5.4 小结 107

第6章 拇指接龙游戏导航场景设计 108

6.1 使用场景编辑器构建场景FirstScene 108

6.1.1 用Cocos Studio 2.3.3创建帧动画 110

6.1.2 用Cocos Studio 2.3.3创建骨骼动画 117

6.1.3 Cocos Studio 2.3.3导出资源应用于编程 120

6.2 游戏导航场景编码设计 122

6.2.1 游戏导航场景功能分析 122

6.2.2 游戏导航场景编码设计 123

6.3 全局变量及SQLite开发技术分析 132

6.3.1 系统中的全局变量 132

6.3.2 两种本地文件存储方案——UserDefault和SQLite数据库 133

6.4 小结 138

第7章 游戏帮助系统设计 139

7.1 FaqScene场景设计 139

7.1.1 FaqScene场景UI设计 139

7.1.2 FaqScene场景编码分析 140

7.1.3 多语言内容显示方案 147

7.2 TutorialScene场景设计 147

7.2.1 概述 148

7.2.2 TutorialScene场景UI设计 150

7.2.3 TutorialScene场景头文件设计 151

7.2.4 TutorialScene场景动画设计 154

7.2.5 TutorialScene场景的双击式移动扑克牌编程 160

7.2.6 TutorialScene场景中拖放式移动扑克牌 166

7.2.7 扑克牌自动飞动的硬编码方式 183

7.2.8 无须扑克牌匹配判定与恢复栈创建 184

7.3 小结 185

第8章 拇指接龙游戏关卡及回合设计 186

8.1 大关卡设计的模拟愤怒的小鸟界面 186

8.1.1 大关卡选择场景UI设计 187

8.1.2 图层内置动画与ImageView Title控件 188

8.1.3 关于艺术数字控件TextAtlas 189

8.1.4 大关卡选择编码的头文件设计 191

8.1.5 大关卡选择编码的实现文件编程 192

8.2 小关卡设计的模拟“RuneMasterPuzzle”界面 198

8.2.1 小关卡选择场景UI设计 198

8.2.2 小关卡选择设计的编码实现 199

8.3 游戏回合选择设计 204

8.3.1 UI设计 204

8.3.2 后台编码 205

8.4 小结 211

第9章 创建通用场景切换类 212

9.1 LoadingScene.h定义 212

9.2 LoadingScene成员函数分析 213

9.3 小结 225

第10章 拇指接龙游戏道具商店设计 227

10.1 了解游戏道具 227

10.1.1 道具定义 227

10.1.2 游戏道具获取方式 228

10.1.3 游戏道具数据库设计 228

10.2 拇指接龙游戏道具数据策划 229

10.2.1 操作撤销道具——undo 229

10.2.2 列重洗牌道具——fan 229

10.2.3 列移动道具——worm 230

10.2.4 wildcard道具——wand 231

10.2.5 Joker道具——net 232

10.2.6 道具——owl 233

10.3 模拟“进击的小怪物”设计道具商店 233

10.3.1 道具商店主界面设计 233

10.3.2 道具购买场景设计 235

10.3.3 诱导玩家安装应用赚积分场景设计 236

10.4 游戏道具商店编码实现 236

10.4.1 由游戏导航场景切换到道具商店系统 236

10.4.2 道具商店系统StoreScene.h分析 237

10.4.3 道具数值定义 239

10.4.4 加载场景资源文件 240

10.4.5 触发道具购买行为编程 242

10.4.6 进行购买道具活动相关编程 244

10.4.7 积分墙相关编程 248

10.5 小结 248

第11章 拇指接龙游戏主场景开发 249

11.1 游戏主场景开发的功能设计 249

11.1.1 道具子系统 250

11.1.2 发牌子系统 250

11.1.3 玩牌子系统 250

11.1.4 奖励子系统 251

11.2 游戏主场景开发的界面设计 251

11.2.1 游戏主场景界面设计 251

11.2.2 主场景工具栏(即游戏场景HUD)设计 253

11.2.3 奖励信息提示图层设计 254

11.2.4 道具使用说明图层设计 255

11.2.5 游戏暂停图层设计 257

11.2.6 游戏继续操作图层设计 258

11.2.7 游戏回合结束小结图层设计 259

11.3 游戏主场景开发的数据结构设计 260

11.3.1 创建扑克牌类——Card 264

11.3.2 定义双击或拖放扑克牌的有关变量 271

11.3.3 定义用于存储扑克牌的数据结构 271

11.4 游戏主场景开发的总体流程设计 272

11.5 Undo道具开发与STL函数 272

11.5.1 Undo道具功能回顾 272

11.5.2 Undo道具有关数据结构与操作 273

11.5.3 使用与定义stackTidying函数 275

11.5.4 使用Undo道具编程 279

11.6 Fan和Worm道具编程 283

11.6.1 Fan道具 283

11.6.2 Worm道具 287

11.7 Wand、Net和Owl道具编程 291

11.7.1 Wand道具 292

11.7.2 Net道具 298

11.7.3 Owl道具 303

11.8 奖励机制编程 307

11.8.1 拇指接龙游戏奖励子系统功能模块 308

11.8.2 奖励定义 308

11.8.3 奖励相关编程分析 310

11.8.4 奖励系统监控与执行 318

11.9 扑克牌拖放与单击事件编程 322

11.9.1 onTouchBegan函数总体执行流程示意图 323

11.9.2 屏幕单击事件编程 325

11.9.3 onTouchMoved函数总体执行流程示意图 336

11.9.4 onTouchEnded函数总体执行流程示意图 339

11.10 游戏进程监控编程 341

11.10.1 游戏系统时间监控 341

11.10.2 奖品监控 341

11.10.3 游戏全程监控机制 343

11.10.4 缺憾 348

11.11 游戏暂停编程 348

11.11.1 功能模块图 348

11.11.2 暂停模块编程 349

11.12 双击式移动扑克牌编程 353

11.13 拖放单张扑克牌编程 358

11.14 拖放多张扑克牌编程 371

11.14.1 onTouchBegan()函数主要功能总结 372

11.14.2 onTouchMoved()函数主要功能总结 372

11.14.3 onTouchEnded函数内系列扑克牌执行流程示意图 374

11.15 小结 378

高级扩展篇 382

第12章 iOS移植的Objective-C编程知识必备 382

12.1 必须了解的Objective-C 2.0编程知识 382

12.1.1 Objective-C语言特性的Block 382

12.1.2 委托和协议 386

12.1.3 Objective-C=编译器+运行时 388

12.2 iOS应用程序文件夹架构 388

12.2.1 文件main.m的作用 388

12.2.2 UIApplicationMain函数 389

12.2.3 应用程序委托 390

12.2.4 视图控制器 390

12.2.5 Info.plist文件 390

12.2.6 图标和默认图像 391

12.2.7 沙盒机制 391

12.2.8 MVC编程规范 391

12.3 iOS应用程序生命周期分析 391

12.3.1 应用程序的状态 392

12.3.2 各个程序运行状态时代理的回调 392

12.3.3 加载应用程序进入前台 395

12.3.4 加载应用程序进入后台 396

12.3.5 基于警告式响应中断 396

12.3.6 进入后台运行 397

12.3.7 返回前台运行 399

12.3.8 程序终止 399

12.3.9 The Main Run Loop主运行循环 400

12.4 iOS应用程序MVC架构 400

12.4.1 MVC框架结构 400

12.4.2 深入理解UIViewController类 401

12.5 Cocos2d-x框架下iOS版本的AppController 404

12.6 Objective-C反射技术回顾 405

12.6.1 获取Class 406

12.6.2 确定继承关系 406

12.6.3 方法的动态调用 407

12.7 C++与Objective-C混合编程 409

12.7.1 Objective-C和C++混编支持 409

12.7.2 结构成员与类成员 411

12.7.3 关于命名空间 412

12.7.4 关于C++模板 412

12.7.5 关于异常处理 412

12.8 EasyNDK的iOS版深入剖析 412

12.8.1 实现原理图展示 413

12.8.2 EasyNDK-for-cocos2dx-master下载Demo应用全面剖析 413

12.8.3 总结EasyNDK的使用套路 419

12.9 参考资料 419

第13章 Android移植的Java&NDK编程知识必备 420

13.1 Android应用程序体系架构 420

13.2 Android应用程序基本组件 421

13.2.1 Activity与View 421

13.2.2 Service与Activity 422

13.2.3 Intent类和IntentFilter类 424

13.2.4 Android应用程序生命周期 425

13.3 了解Android应用UI设计 425

13.3.1 丰富的可视化控件 426

13.3.2 关联后台代码与前台UI 427

13.4 Android事件处理机制 428

13.4.1 组件间消息传递——Intent 428

13.4.2 线程间消息传递——Message 429

13.5 EasyNDK的Android版深入剖析 430

13.5.1 实现原理图 431

13.5.2 EasyNDK-for-cocos2dx-master下载Demo应用全面分析 431

13.5.3 Classes文件夹下子文件夹jansson和NDKHelper 432

13.5.4 EasyNDK\proj.android \src\com\easyndk文件夹下内容解析 433

13.5.5 Classes下文件Hello WorldScene.cpp分析 434

13.5.6 总结EasyNDK的使用套路 434

13.6 小结 435

第14章 拇指接龙集成社交分享ShareSDK for iOS 436

14.1 下载ShareSDK iOS版本 436

14.2 下载ShareSDK iOS版本的Cocos2d-x插件 437

14.3 添加必需的依赖库 438

14.4 Cocos2d-x插件部分有关编程 439

14.4.1 选择需要的平台SDK和Cocos2d-x环境 439

14.4.2 修改AppDelegate.cpp文件——初始化 440

14.5 ShareSDK接口的调用 441

14.6 截图欣赏 443

14.7 小结 444

第15章 拇指接龙集成社交分享ShareSDK for Android 445

15.1 通用部分集成步骤 445

15.1.1 下载ShareSDK For COCOS2D-X 445

15.1.2 初始化ShareSDK并配置社交平台信息 446

15.1.3 分享内容、用户授权及获取用户资料 447

15.2 Android部分集成步骤 452

15.3 其他说明 453

15.3.1 ShareSDK.xml配置文件说明 453

15.3.2 java层代码解释 454

15.4 效果图展示 454

15.5 小结 455

第16章 拇指接龙游戏集成有米积分墙的Android版 457

16.1 积分墙概述 457

16.1.1 计费方式 457

16.1.2 展现方式 457

16.2 有米积分墙的基本配置 458

16.2.1 导入SDK 458

16.2.2 权限配置 458

16.2.3 广告组件配置 458

16.2.4 初始化 459

16.2.5 混淆配置 459

16.2.6 打包 459

16.2.7 设置渠道号(推荐) 459

16.3 集成有米积分墙代码 460

16.3.1 初始化 460

16.3.2 展示全屏积分墙 460

16.3.3 展示悬浮半屏积分墙 460

16.3.4 积分管理接口 461

16.4 积分墙高级功能 462

16.4.1 积分余额变动通知 462

16.4.2 客户端SDK获取订单信息 463

16.4.3 服务器获取订单信息 464

16.4.4 验证积分墙配置是否正确 464

16.4.5 配置积分墙SDK的积分到账提醒 465

16.5 使用EasyNDK简化有米积分墙集成 465

16.5.1 C++端调用Java端 465

16.5.2 Java端调用C++端 466

16.5.3 下载并解压EasyNDK for Cocos2d-x 468

16.5.4 Classes文件夹下的复制 468

16.5.5 proj.android中src文件夹下的复制 469

16.5.6 ThumbelinaCell.java代码修改 469

16.5.7 修改Android.mk文件 470

16.5.8 修改StoreScene.cpp文件 470

16.6 软件截图欣赏 471

16.6.1 提示玩家积分交换 471

16.6.2 积分墙界面 472

16.7 游戏中积分墙相关数据算法 472

16.7.1 集成有米积分墙时的典型问题 472

16.7.2 有米广告过滤列表中显示的数据形式 473

16.7.3 由道具价格推算积分墙显示数据 474

16.7.4 我们的算法推算 475

16.8 小结 476

第17章 弱联网手游开发的云存储技术 477

17.1 Firebase(国外) 477

17.2 AppWarp(国外) 478

17.3 野狗(国内) 479

17.4 LeanCloud(国内) 480

17.4.1 数据存储服务 480

17.4.2 消息推送服务 481

17.4.3 实时通信服务 481

17.4.4 iOS/OSX数据存储开发 481

17.5 关于Pomelo和Firefly等 483

17.6 小结 484