欢迎光临
免费的PDF电子书下载网站

精通Cocos2d-x游戏开发(进阶卷) PDF下载

编辑推荐

Cocos2d-x创始人王哲先生倾情推荐!

Cocos2d-x实用技术 → Lua技术 → 网络游戏开发 → 跨平台开发;

专注于Cocos2d-x引擎的实际应用,致力于让你成为一个高水平的程序员;

紧跟技术趋势,以当前主流的Cocos2d-x游戏引擎版本3.x进行讲解;

重点介绍实际开发中碰到的各种问题的不同解决思路及其优缺点;

用简洁和通俗易懂的语言写作,读者阅读起来不会枯燥乏味;

深入介绍热更新、加密与解密、骨骼动画、调试技巧、Shader特效及物理引擎等实用技术;

详解在Cocos2d-x中使用Lua的技巧,以及Quick-Cocos2d-x框架和原生Lua框架的区别;

详解网络及实时同步技术,涵盖弱联网、强联网和局域网三种网络游戏的前后端开发;

详解iOS和Android平台下的开发和打包,涵盖证书签名、ABI和JNI等实用技术;

详解如何使用AnySDK在iOS和Android下快速接入第三方SDK;

提供QQ交流群和E-mail等交流方式,为读者答疑解惑。

 

内容简介

《精通Cocos2d-x游戏开发》分为《基础卷》和《进阶卷》两册。这两册都有明确的写作目的。《基础卷》专注于Cocos2d-x引擎基础,致力于让Cocos2d-x初学者成为一个基础扎实、靠谱的程序员。《进阶卷》专注于各种实用技术,是作者多年开发经验的结晶,书中的技术点大多是从实际工作中碰到的问题提炼而来的,从问题的本质出发到解决问题的思路,提供了多种解决方案,并对比各方案的优缺点,启发读者思考。本书为《精通Cocos2d-x游戏开发》的《进阶卷》,共36章,分为4篇。第1篇为“实用技术篇”,主要内容有加密解密、增量更新、分辨率适配、调试技巧、Shader特效、裁剪遮罩、物理引擎、骨骼动画、CocoStudio*实践等实用技术。第2篇为“Lua篇”,主要内容有Lua的基础知识、Lua的table与面向对象、C/C 与Lua的通信、Cocos2d-x原生Lua框架与Quick-Cocos2d-x Lua框架等。第3篇为“网络篇”,主要内容有网络基础、select IO复用、Socket和Libcurl等基础知识,以及弱联网、强联网、局域网等网络游戏的客户端和服务端开发。第4篇为“跨平台篇”,主要内容有Android和iOS平台的开发和打包知识,以及如何使用AnySDK快速接入第三方SDK。本书适合使用Cocos2d-x进行游戏开发的中高级读者阅读,尤其适合在使用Cocos2d-x开发过程中碰到问题的程序员,以及希望学习一些实用技术,从而丰富自身经验的程序员。对于大中专院校的学生和社会培训班的学员,本书也是一本不可多得的学习教程。

《精通Cocos2d-x游戏开发》分为《基础卷》和《进阶卷》两册。这两册都有明确的写作目的。《基础卷》专注于Cocos2d-x引擎基础,致力于让Cocos2d-x初学者成为一个基础扎实、靠谱的程序员。《进阶卷》专注于各种实用技术,是作者多年开发经验的结晶,书中的技术点大多是从实际工作中碰到的问题提炼而来的,从问题的本质出发到解决问题的思路,提供了多种解决方案,并对比各方案的优缺点,启发读者思考。

本书为《精通Cocos2d-x游戏开发》的《进阶卷》,共36章,分为4篇。第1篇为“实用技术篇”,主要内容有加密解密、增量更新、分辨率适配、调试技巧、Shader特效、裁剪遮罩、物理引擎、骨骼动画、CocoStudio*实践等实用技术。第2篇为“Lua篇”,主要内容有Lua的基础知识、Lua的table与面向对象、C/C 与Lua的通信、Cocos2d-x原生Lua框架与Quick-Cocos2d-x Lua框架等。第3篇为“网络篇”,主要内容有网络基础、select IO复用、Socket和Libcurl等基础知识,以及弱联网、强联网、局域网等网络游戏的客户端和服务端开发。第4篇为“跨平台篇”,主要内容有Android和iOS平台的开发和打包知识,以及如何使用AnySDK快速接入第三方SDK。

本书适合使用Cocos2d-x进行游戏开发的中高级读者阅读,尤其适合在使用Cocos2d-x开发过程中碰到问题的程序员,以及希望学习一些实用技术,从而丰富自身经验的程序员。对于大中专院校的学生和社会培训班的学员,本书也是一本不可多得的学习教程。

快速了解本书:

实用技术篇

文件读写

加密与解密

声音与音效

分辨率适配

CocoStudio*实践

调试Cocos2d-x

调试技巧总结

物理引擎——Box2d基础

物理引擎——应用到Cocos2d-x

图元渲染

Spine骨骼动画

2D、3D粒子特效

裁剪与遮罩

使用Shader——GLSL基础

使用Shader——常用特效

Lua

Lua基础语法

Lua——Table

Lua与C的通信

Cocos2d-x原生Lua框架详解

Cocos2d-x Quick框架详解

Quick框架实践——MVC框架

网络篇

网络游戏——网游开发概述

弱联网游戏——Cocos2d-x客户端实现

弱联网游戏——PHP服务器实现

强联网游戏——TCP和Socket

强联网游戏——单机版动作游戏

强联网游戏——C 服务器实现

网络游戏——前后端网络同步

局域网游戏——使用UDP

局域游戏——建立、搜索、加入房间

跨平台篇

Android环境搭建

使用JNI实现C 与Java互调

iOS环境搭建与真机调试

Objective-C与C 互调

接入AnySDK

作者简介

王永宝,自高一起就自学编程,至今已经10年有余。酷爱游戏开发。熟练掌握C/C 、Lua和C#等编程语言。擅长网络编程、高并发服务端架构设计、客户端框架设计和OpenGL等技术。2010年参加了广东省专业杯软件设计大赛,在31所院校的86支队伍的激烈竞争中,凭借一个月内使用三门语言开发的塔防游戏而获得一等奖。同年进入深圳市饭后科技有限公司,陆续担任C 服务端主程、Unity3D主程和Cocos2d-x主程,并作为技术负责人负责了多款游戏的开发。业余时间潜心研究游戏开发,编写了多款游戏作品。

精通Cocos2d-x游戏开发(进阶卷)

目录

第1篇  实用技术篇

第1章  文件读写

1.1  使用UserDefault

1.2  读写XML文件

1.2.1  XML格式简介

1.2.2  使用TinyXML读取XML

1.2.3  使用TinyXML写入XML

1.3  读写Plist文件

1.3.1  Plist格式简介

1.3.2  读写Plist文件

1.4  读取CSV文件

1.4.1  解析CSV

1.4.2  描述复杂结构

1.5  读写二进制文件

第2章  加密解密

2.1  加密解密基础

2.1.1  公钥/私钥与非对称加密

2.1.2  信息摘要与数字签名

2.1.3  数字证书

2.2  防止内存修改

2.3  对资源的加密解密

2.3.1  使用TexturePacker加密纹理

2.3.2  对Lua脚本进行加密

2.3.3  自定义Lua脚本加密解密

2.3.4  自定义图片加密解密

2.4  使用加固工具

2.4.1  360加固保加固步骤

2.4.2  Android应用签名

第3章  增量更新

3.1  使用AssetsManagerEx

3.2  搭建增量更新服务器

3.3  Manifest文件详解

3.4  AssetsManagerEx内部实现流程简析

3.5  自动打包工具

第4章  声音与音效

4.1  选择音频格式

4.2  使用SimpleAudioEngine

4.3  使用AudioEngine

4.4  声音音效相关的经验和技巧

第5章  分辨率适配

5.1  Cocos2d-x适配策略

5.1.1  分辨率适配策略

5.1.2  坐标编码

5.1.3  OpenGL窗口与可视化窗口

5.1.4  setDesignResolutionSize详解

5.2  分辨率适配经验

5.2.1  宽度或高度锁定

5.2.2  计算设计分辨率

5.2.3  场景固定内容

5.2.4  经验小结

5.3  CocoStudio分辨率适配

第6章  CocoStudio最佳实践

6.1  高效创建CSB

6.1.1  简单方案

6.1.2  缓存方案

6.1.3  克隆方案

6.2  异步加载CSB

6.3  高效播放CSB动画

第7章  调试Cocos2d-x

7.1  控制台调试

7.2  使用KxDebuger调试Cocos2d-x

第8章  调试技巧总结

8.1  初级调试技巧

8.1.1  基础操作

8.1.2  启动调试

8.1.3  条件断点

8.1.4  监视技巧

8.2  高级调试技巧

8.2.1  远程调试

8.2.2  coredump调试

8.2.3  使用Bugly捕获崩溃堆栈

8.2.4  命中断点

8.2.5  数据断点

8.2.6  即时窗口

8.2.7  多线程调试

8.2.8  性能调试

8.3  记一次内存泄漏调试

8.3.1  内存泄漏表象

8.3.2  初步分析

8.3.3  排查问题

8.3.4  修改代码定位泄漏点

8.3.5  开始调试

第9章  物理引擎——Box2d基础

9.1  核心概念

9.2  工作流程

9.3  物理世界World

9.4  Body和Shape

9.4.1  刚体的碰撞

9.4.2  创建刚体

9.5  关节Joint

9.5.1  使用关节

9.5.2  旋转关节RevoluteJoint

9.5.3  平移关节PrismaticJoint

9.5.4  距离关节DistanceJoint

9.5.5  滑轮关节PulleyJoint

9.5.6  鼠标关节MouseJoint

9.5.7  齿轮关节GearJoint

9.5.8  滚轮关节WheelJoint

9.5.9  焊接关节WeldJoint

9.5.10  摩擦关节FrictionJoint

9.5.11  绳索关节RopeJoint

第10章  物理引擎——应用到Cocos2d-x

10.1  物体的运动

10.1.1  施加力和冲量

10.1.2  角力矩和角冲量

10.2  碰撞检测

10.2.1  碰撞监听

10.2.2  碰撞过滤

10.3  Box2d的调试渲染

10.4  在Cocos2d-x中使用Box2d

10.4.1  物理世界

10.4.2  物理Sprite

10.4.3  碰撞处理

10.5  Box2d的相关工具

10.5.1  PhysicsEditor介绍

10.5.2  BoxCAD介绍

10.5.3  Physics Body Editor介绍

10.5.4  Vertex Helper介绍

第11章  图元渲染

11.1  使用DrawingPrimitives接口绘制图元

11.1.1  如何绘制图元

11.1.2  半透明效果

11.1.3  抗锯齿

11.2  使用DrawNode绘制图元

11.3  渲染接口详解

11.3.1  绘制点

11.3.2  绘制线段、矩形、多边形与圆形

11.3.3  绘制贝塞尔曲线

11.3.4  绘制CardinalSpline

11.3.5  绘制凯特摩曲线

11.3.6  绘制实心图元

11.4  小结

第12章  Spine骨骼动画

12.1  Spine功能简介

12.2  Spine结构

12.3  使用Spine

12.3.1  加载Spine

12.3.2  播放动画

12.3.3  动画回调

12.3.4  显示控制

12.4  Spine高级技巧

12.4.1  混合动画

12.4.2  缓存Spine骨骼动画

12.4.3  异步加载Spine骨骼

12.4.4  Spine的性能优化

第13章  2D、3D粒子特效

13.1  2D粒子特效

13.1.1  粒子系统简介

13.1.2  手动创建粒子系统

13.1.3  使用Cocos2d-x内置的粒子系统

13.1.4  使用Plist文件加载粒子系统

13.1.5  操作粒子系统

13.2  2D粒子系统运行流程

13.2.1  流程简介

13.2.2  粒子的更新和渲染

13.3  3D粒子特效

13.3.1  组件系统

13.3.2  Particle Universe支持的组件

13.4  使用Particle Universe粒子系统

13.4.1  使用PUParticleSystem3D

13.4.2  PUParticleSystem3D相关接口

13.5  3D粒子系统源码简析

13.5.1  ParticleSystem3D结构

13.5.2  初始化流程

第14章  裁剪与遮罩

14.1  片段测试

14.1.1  裁剪测试

14.1.2  Alpha测试

14.1.3  模板测试

14.1.4  深度测试

14.2  裁剪

14.2.1  使用ClippingRectangleNode

14.2.2  ClippingRectangleNode的实现

14.3  遮罩

14.3.1  ScrollViewDemo示例

14.3.2  HoleDemo示例

14.3.3  详解HoleDemo示例

14.3.4  ClippingNode的实现

第15章  使用Shader——GLSL基础

15.1  Shader简介

15.2  图形渲染管线

15.2.1  顶点处理器

15.2.2  片段处理器

15.2.3  插值计算

15.3  GLSL基础语法

15.3.1  数据类型和变量

15.3.2  操作符

15.3.3  变量修饰符、统一变量和属性变量

15.3.4  易变变量

15.3.5  语句与函数

15.3.6  Shader简单示例

15.4  在OpenGL中使用Shader

15.4.1  在OpenGL中创建Shader

15.4.2  属性变量

15.4.3  统一变量

15.4.4  错误处理

15.4.5  清理工作

15.5  在Cocos2d-x中使用Shader

15.5.1  Cocos2d-x的Shader架构

15.5.2  Cocos2d-x内置Shader规则

15.5.3  编写Shader

15.5.4  使用Shader的步骤

第16章  使用Shader——常用特效

16.1  Blur模糊效果

16.2  OutLine描边效果

16.3  RGB、HSV与HSL效果

16.4  调整色相

16.5  流光效果

第2篇  Lua篇

第17章  Lua基础概述

17.1  类型与值

17.2  操作符

17.2.1  算术操作符

17.2.2  关系操作符

17.2.3  逻辑操作符

17.2.4  其他操作符

17.3  语句

17.3.1  赋值语句

17.3.2  语句块

17.3.3  条件语句

17.3.4  循环语句

17.4  函数

17.4.1  定义函数

17.4.2  调用函数

17.4.3  函数参数

17.4.4  尾调用

17.5  闭包与泛型for

17.5.1  闭包

17.5.2  泛型for

第18章  Lua——table

18.1  使用table

18.1.1  创建table

18.1.2  访问table

18.1.3  修改table

18.1.4  删除table

18.1.5  遍历table

18.2  元表metatable

18.2.1  元方法

18.2.2  算术、关系与连接元方法

18.2.3  特殊的元方法

18.2.4  __index元方法

18.2.5  __newindex元方法

18.2.6  __mode元方法

18.3  packages介绍

18.3.1  require()方法

18.3.2  编写模块

18.4  面向对象

18.4.1  定义类

18.4.2  实例化

18.4.3  继承

18.5  table库

18.5.1  插入

18.5.2  排序

18.5.3  pack()和unpack()方法

18.5.4  table长度

第19章  Lua与C的通信

19.1  准备工作

19.1.1  头文件与链接库

19.1.2  lua_State指针

19.1.3  堆栈

19.1.4  压入堆栈

19.1.5  访问堆栈

19.1.6  堆栈的其他操作

19.2  操作table

19.2.1  如何将table传入Lua

19.2.2  如何获取Lua返回的table

19.3  C/C 中调用Lua

19.3.1  执行Lua片段

19.3.2  执行Lua脚本文件

19.3.3  调用Lua函数

19.4  注册C/C 函数给Lua调用

19.5  将C 的类传给Lua

第20章  Cocos2d-x原生Lua框架详解

20.1  Cocos2d-x原生Lua框架结构

20.1.1  Lua核心层

20.1.2  Lua脚本引擎

20.1.3  Cocos2d-x到Lua的转换层

20.1.4  Lua辅助层

20.2  使用Cocos2d-x原生Lua框架

20.2.1  在Cocos2d-x中调用Lua

20.2.2  在Lua中操作Cocos2d-x

20.3  Cocos2d-x原生Lua框架运行流程

20.3.1  LuaEngine初始化流程

20.3.2  加载Lua脚本

20.3.3  Cocos2d-x到Lua的事件分发

20.3.4  Lua辅助层初始化流程

20.3.5  Lua辅助层的实用工具

20.4  使用genbindings.py导出自定义类

20.4.1  各个平台的环境搭建

20.4.2  编写要导出的C 的类

20.4.3  编写ini配置文件

20.4.4  修改并执行genbindings.py

20.4.5  注册并在Lua中使用

20.5  扩展Cocos2d-x Lua

20.5.1  编写扩展方法

20.5.2  注册到类中

20.6  lua-tests导读

第21章  Cocos2d-x Quick框架详解

21.1  Quick简介

21.2  Quick框架结构

21.3  使用Quick

21.3.1  创建Quick项目

21.3.2  第一个Quick程序

21.3.3  开发工具

21.4  Quick运行流程分析

21.4.1  初始化流程

21.4.2  MVC框架运行流程

21.5  Quick脚本框架详解

21.5.1  Quick脚本框架整体结构

21.5.2  Quick框架基础模块

21.5.3  Quick脚本框架初始化流程

第22章  Quick框架实践——MVC框架

22.1  组件系统详解

22.1.1  EventProtocol事件组件

22.1.2  StateMachine状态机组件

22.2  ModelBase详解

22.3  MVC示例详解

22.3.1  代码结构简介

22.3.2  启动流程详解

22.3.3  发射子弹

22.3.4  命中目标

22.4  小结

第3篇  网络篇

第23章  网络游戏——网游开发概述

23.1  弱联网游戏

23.2  强联网游戏

23.3  局域网游戏

第24章  弱联网游戏——Cocos2d-x客户端实现

24.1  客户端请求流程

24.2  Libcurl easy接口详解

24.2.1  关于请求链接

24.2.2  关于Post提交表单

24.2.3  关于读写

24.3  使用多线程执行请求

第25章  弱联网游戏——PHP服务器实现... 362

25.1  环境搭建... 362

25.1.1  安装PHP. 362

25.1.2  安装Nginx. 363

25.1.3  安装MySQL. 363

25.1.4  启动服务... 364

25.2  编写PHP. 365

25.2.1  基本语法... 365

25.2.2  表单处理... 366

25.2.3  操作MySQL. 366

25.3  实现签到服务... 366

第26章  强联网游戏——TCP和Socket 369

26.1  Socket接口与TCP. 369

26.1.1  TCP服务器与客户端交互流程... 370

26.1.2  Socket API 详解... 372

26.1.3  Windows Socket API详解... 376

26.2  简单的TCP服务器端与客户端... 376

26.2.1  TCP服务器实现... 377

26.2.2  TCP客户端实现... 379

26.3  非阻塞Socket与select()函数... 380

26.3.1  非阻塞Socket 380

26.3.2  select()函数的使用... 380

26.3.3  调整TCP服务器为Select模型... 382

26.4  半包粘包... 384

26.4.1  什么是半包粘包... 384

26.4.2  处理半包粘包... 385

26.5  心跳与超时... 387

26.5.1  TCP的死连接... 388

26.5.2  检测死连接... 389

第27章  强联网游戏——单机版动作游戏... 390

27.1  需求分析与类设计... 390

27.2  创建工程和场景... 393

27.3  添加实体... 396

27.4  实体显示组件... 399

27.5  消息定义... 400

27.6  添加SingleProxy. 401

27.7  游戏的主逻辑... 402

第28章  强联网游戏——C 服务器实现... 404

28.1  服务端需求分析... 404

28.2  kxServer的使用... 404

28.3  NetDemoServer服务器... 405

28.4  接收客户端请求... 409

28.5  移植前端代码... 412

28.6  梳理流程和总结... 412

第29章  网络游戏——前后端网络同步... 414

29.1  整理入口场景... 414

29.2  连接服务器... 416

29.3  添加OnlineProxy. 416

29.4  打包与恢复场景... 418

29.5  实时同步... 419

第30章  局域网游戏——使用UDP. 423

30.1  使用UDP. 423

30.2  UDP通信流程... 424

30.2.1  sendto()函数... 424

30.2.2  recvfrom()函数... 425

30.3  UDP广播... 425

30.3.1  什么是网络号和主机号... 426

30.3.2  A类、B类、C类地址与广播地址... 426

30.3.3  什么是子网和子网掩码... 426

30.3.4  本地网络的定义是什么... 427

30.3.5  发送广播... 427

30.4  简单的UDP服务器... 428

30.5  简单的UDP客户端... 429

第31章  局域网游戏——建立、搜索、加入房间... 430

31.1  建立房间... 430

31.2  移植后端代码... 432

31.3  搜索房间... 434

第4篇  跨平台篇

第32章  Android环境搭建... 440

32.1  Android环境搭建基础... 440

32.1.1  JDK和JRE. 440

32.1.2  关于ADK. 442

32.1.3  关于NDK. 443

32.2  使用Eclipse打包... 443

32.2.1  打开Android项目... 443

32.2.2  解决Java报错... 444

32.2.3  设置NDK. 448

32.2.4  解决打包报错... 450

32.2.5  解决运行报错... 451

32.3  使用Android Studio打包... 453

32.3.1  cocos compile命令... 453

32.3.2  编译打包Android Studio. 454

32.3.3  打包遇到的问题... 455

32.4  新建Android项目... 456

32.5  实用技巧... 458

32.5.1  关于版本问题... 458

32.5.2  关于减少包体积... 459

第33章  使用JNI实现C 与Java互调... 461

33.1  Android基本概念... 461

33.1.1  Activity简介... 461

33.1.2  Intent简介... 463

33.1.3  资源与R.java. 463

33.1.4  AndroidManifest.xml简介... 463

33.2  Hello JNI项目... 463

33.2.1  使用Eclipse创建项目... 463

33.2.2  使用Android Studio创建项目... 465

33.3  编写JNI的C 代码... 467

33.3.1  为Eclipse添加Android.mk和hello.c. 467

33.3.2  在Android Studio下编写JNI 468

33.3.3  C 的函数原型... 471

33.3.4  C 调用Java. 472

33.4  Java调用C . 473

33.5  在C 程序中使用Java. 474

33.6  在Cocos2d-x中实现Java和C 的互调... 479

33.6.1  Cocos2d-x的JNI初始化... 480

33.6.2  在Cocos2d-x中调用Java. 480

33.6.3  在Java中调用Cocos2d-x. 481

33.7  Android.mk和Application.mk详解... 481

33.7.1  认识Android.mk. 481

33.7.2  用Android.mk添加源文件以及指定头文件目录... 482

33.7.3  在Android.mk中引用其他模块(第三方库)... 482

33.7.4  Android.mk的一些变量和函数... 484

33.7.5  关于Application.mk. 484

33.8  ABI详解... 485

33.8.1  常见的ABI 485

33.8.2  如何选择ABI 485

33.8.3  如何生成对应ABI的so. 486

33.9  调试JNI代码... 486

33.9.1  Android Studio JNI 调试环境搭建... 487

33.9.2  Android Studio 的断点调试... 490

第34章  iOS环境搭建与真机调试... 492

34.1  iOS环境搭建... 492

34.1.1  环境搭建... 492

34.1.2  Windows移植iOS. 493

34.2  iOS证书... 494

34.2.1  Mac的证书... 495

34.2.2  注册开发者... 495

34.2.3  如何获得证书... 495

34.2.4  创建证书... 496

34.2.5  关于证书密钥... 498

34.3  iOS真机调试... 500

34.3.1  无证书调试... 500

34.3.2  使用证书调试... 502

34.4  打包IPA. 505

34.4.1  正确设置签名证书与授权文件... 505

34.4.2  使用Xcode打包... 506

34.4.3  其他打包方式... 509

第35章  Objective-C与C 互调... 511

35.1  Objective-C基础语法... 511

35.1.1  Objective-C的一些特性... 511

35.1.2  Objective-C的类... 512

35.2  Objective-C与C 混编... 514

第36章  接入AnySDK. 515

36.1  AnySDK概述... 515

36.1.1  为什么要接入AnySDK. 515

36.1.2  AnySDK架构简介... 516

36.1.3  AnySDK快速接入指引... 517

36.2  接入AnySDK Android框架... 520

36.2.1  导入Android AnySDK Framework. 521

36.2.2  初始化AnySDK Framework. 522

36.3  接入AnySDK iOS 框架... 526

36.3.1  导入AnySDK Framework. 527

36.3.2  初始化AnySDK Framework. 530

36.4  登录流程... 531

36.4.1  登录流程简介... 531

36.4.2  客户端接入登录... 532

36.4.3  服务端接入登录... 534

36.5  支付流程... 536

36.5.1  支付流程... 536

36.5.2  客户端接入支付... 537

36.5.3  服务端接入支付... 539

36.6  母包联调... 540

36.6.1  调试登录... 540

36.6.2  调试支付... 541

36.7  打包工具... 542

36.8  小结... 543

精通Cocos2d-x游戏开发(进阶卷) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:精通Cocos2d-x游戏开发(进阶卷)