当前位置:主页 > 计算机电子书 > 程序设计 > 游戏开发下载
精通Cocos2d-x游戏开发:进阶卷

精通Cocos2d-x游戏开发:进阶卷 PDF 影印版

  • 更新:2020-05-04
  • 大小:98.1 MB
  • 类别:游戏开发
  • 作者:王永宝
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

精通Cocos2d-x游戏开发》分成《基础卷》和《进阶卷》两册。这两册都是有确立的创作目地。《基础卷》致力于Cocos2d-x模块基础,着眼于让Cocos2d-x新手变成一个基础扎扎实实、可靠的程序员。《进阶卷》致力于各种各样实用技术,是创作者很多年开发工作经验的结晶体,书里的技术性点大多数是以具体工作上遇到的难题提炼出而成的,从难题的实质考虑到解决困难的构思,出示了多种多样解决方法,并比照各计划方案的优点和缺点,启迪阅读者思索。

这书为《精通Cocos2d-x游戏开发》的《进阶卷》,共36章,分成4篇。第1篇为“实用技术篇”,主要内容有加密解密、增减升级、像素兼容、调节方法、Shader动画特效、剪裁蒙版、游戏引擎、骨骼动画、CocoStudio*实践活动等实用技术。第二篇为“Lua篇”,主要内容有Lua的基础专业知识、Lua的table与面向对象编程、C/C与Lua的通讯、Cocos2d-x原生态Lua架构与Quick-Cocos2d-xLua架构等。第三篇为“互联网篇”,主要内容有互联网基础、selectIO重复使用、Socket和Libcurl等基础专业知识,及其弱连接网络、强连接网络、局域网络等网游的手机客户端和服务器端开发。第四篇为“混合开发篇”,主要内容有Android和iOS服务平台的开发和装包专业知识,及其怎么使用AnySDK迅速连接第三方SDK。

这书合适应用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

资源下载

资源下载地址1:https://pan.baidu.com/s/16ggE2Ml9XfJ0th32aIfyAw

相关资源

网友留言