0 0 0

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

焚天
4天前 170
我用夸克网盘分享了「精通Cocos2d-x游戏开发(进阶卷).epub」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
精通Cocos2d-x游戏开发(进阶卷) 作者: 王永宝 出版社: 清华大学出版社 出版年: 2017-3 页数: 543 定价: 99.80 装帧: 平装 ISBN: 9787302461258

内容简介

《精通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开发过程中碰到问题的程序员,以及希望学习一些实用技术,从而丰富自身经验的程序员。对于大中专院校的学生和社会培训班的学员,本书也是一本不可多得的学习教程。

作者简介

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

图书目录

目录 第1篇实用技术篇 第1章文件读写 2 1.1使用UserDefault 2 1.2读写XML文件 4 1.2.1XML格式简介 4 1.2.2使用TinyXML读取XML 5 1.2.3使用TinyXML写入XML 6 1.3读写Plist文件 7 1.3.1Plist格式简介 7 1.3.2读写Plist文件 8 1.4读取CSV文件 9 1.4.1解析CSV 10 1.4.2描述复杂结构 11 1.5读写二进制文件 11 第2章加密解密 15 2.1加密解密基础 15 2.1.1公钥/私钥与非对称加密 15 2.1.2信息摘要与数字签名 16 2.1.3数字证书 17 2.2防止内存修改 17 2.3对资源的加密解密 18 2.3.1使用TexturePacker加密纹理 18 2.3.2对Lua脚本进行加密 19 2.3.3自定义Lua脚本加密解密 22 2.3.4自定义图片加密解密 24 2.4使用加固工具 27 2.4.1360加固保加固步骤 27 2.4.2Android应用签名 28 第3章增量更新 32 3.1使用AssetsManagerEx 32 3.2搭建增量更新服务器 35 3.3Manifest文件详解 36 3.4AssetsManagerEx内部实现流程简析 38 3.5自动打包工具 40 第4章声音与音效 51 4.1选择音频格式 51 4.2使用SimpleAudioEngine 53 4.3使用AudioEngine 54 4.4声音音效相关的经验和技巧 56 第5章分辨率适配 58 5.1Cocos2d-x适配策略 58 5.1.1分辨率适配策略 58 5.1.2坐标编码 60 5.1.3OpenGL窗口与可视化窗口 61 5.1.4setDesignResolutionSize详解 62 5.2分辨率适配经验 63 5.2.1宽度或高度锁定 63 5.2.2计算设计分辨率 64 5.2.3场景固定内容 66 5.2.4经验小结 67 5.3CocoStudio分辨率适配 67 第6章CocoStudio最佳实践 68 6.1高效创建CSB 68 6.1.1简单方案 68 6.1.2缓存方案 69 6.1.3克隆方案 70 6.2异步加载CSB 74 6.3高效播放CSB动画 77 第7章调试Cocos2d-x 78 7.1控制台调试 78 7.2使用KxDebuger调试Cocos2d-x 81 第8章调试技巧总结 84 8.1初级调试技巧 84 8.1.1基础操作 84 8.1.2启动调试 86 8.1.3条件断点 86 8.1.4监视技巧 88 8.2高级调试技巧 90 8.2.1远程调试 90 8.2.2coredump调试 92 8.2.3使用Bugly捕获崩溃堆栈 92 8.2.4命中断点 93 8.2.5数据断点 96 8.2.6即时窗口 97 8.2.7多线程调试 97 8.2.8性能调试 97 8.3记一次内存泄漏调试 100 8.3.1内存泄漏表象 100 8.3.2初步分析 101 8.3.3排查问题 101 8.3.4修改代码定位泄漏点 102 8.3.5开始调试 103 第9章物理引擎——Box2d基础 107 9.1核心概念 107 9.2工作流程 108 9.3物理世界World 110 9.4Body和Shape 111 9.4.1刚体的碰撞 111 9.4.2创建刚体 112 9.5关节Joint 114 9.5.1使用关节 114 9.5.2旋转关节RevoluteJoint 115 9.5.3平移关节PrismaticJoint 117 9.5.4距离关节DistanceJoint 118 9.5.5滑轮关节PulleyJoint 118 9.5.6鼠标关节MouseJoint 119 9.5.7齿轮关节GearJoint 120 9.5.8滚轮关节WheelJoint 122 9.5.9焊接关节WeldJoint 123 9.5.10摩擦关节FrictionJoint 124 9.5.11绳索关节RopeJoint 125 第10章物理引擎——应用到Cocos2d-x 126 10.1物体的运动 126 10.1.1施加力和冲量 126 10.1.2角力矩和角冲量 127 10.2碰撞检测 127 10.2.1碰撞监听 127 10.2.2碰撞过滤 129 10.3Box2d的调试渲染 130 10.4在Cocos2d-x中使用Box2d 130 10.4.1物理世界 131 10.4.2物理Sprite 133 10.4.3碰撞处理 136 10.5Box2d的相关工具 139 10.5.1PhysicsEditor介绍 139 10.5.2BoxCAD介绍 142 10.5.3PhysicsBodyEditor介绍 143 10.5.4VertexHelper介绍 144 第11章图元渲染 145 11.1使用DrawingPrimitives接口绘制图元 145 11.1.1如何绘制图元 145 11.1.2半透明效果 146 11.1.3抗锯齿 147 11.2使用DrawNode绘制图元 147 11.3渲染接口详解 147 11.3.1绘制点 148 11.3.2绘制线段、矩形、多边形与圆形 148 11.3.3绘制贝塞尔曲线 148 11.3.4绘制CardinalSpline 149 11.3.5绘制凯特摩曲线 149 11.3.6绘制实心图元 149 11.4小结 150 第12章Spine骨骼动画 151 12.1Spine功能简介 151 12.2Spine结构 152 12.3使用Spine 154 12.3.1加载Spine 154 12.3.2播放动画 155 12.3.3动画回调 156 12.3.4显示控制 158 12.4Spine高级技巧 161 12.4.1混合动画 161 12.4.2缓存Spine骨骼动画 162 12.4.3异步加载Spine骨骼 163 12.4.4Spine的性能优化 169 第13章2D、3D粒子特效 172 13.12D粒子特效 172 13.1.1粒子系统简介 172 13.1.2手动创建粒子系统 173 13.1.3使用Cocos2d-x内置的粒子系统 175 13.1.4使用Plist文件加载粒子系统 175 13.1.5操作粒子系统 176 13.22D粒子系统运行流程 179 13.2.1流程简介 179 13.2.2粒子的更新和渲染 180 13.33D粒子特效 180 13.3.1组件系统 181 13.3.2ParticleUniverse支持的组件 182 13.4使用ParticleUniverse粒子系统 184 13.4.1使用PUParticleSystem3D 184 13.4.2PUParticleSystem3D相关接口 187 13.53D粒子系统源码简析 189 13.5.1ParticleSystem3D结构 189 13.5.2初始化流程 190 第14章裁剪与遮罩 194 14.1片段测试 194 14.1.1裁剪测试 195 14.1.2Alpha测试 195 14.1.3模板测试 195 14.1.4深度测试 196 14.2裁剪 197 14.2.1使用ClippingRectangleNode 197 14.2.2ClippingRectangleNode的实现 198 14.3遮罩 199 14.3.1ScrollViewDemo示例 199 14.3.2HoleDemo示例 201 14.3.3详解HoleDemo示例 203 14.3.4ClippingNode的实现 204 第15章使用Shader——GLSL基础 212 15.1Shader简介 212 15.2图形渲染管线 212 15.2.1顶点处理器 215 15.2.2片段处理器 215 15.2.3插值计算 216 15.3GLSL基础语法 217 15.3.1数据类型和变量 217 15.3.2操作符 218 15.3.3变量修饰符、统一变量和属性变量 219 15.3.4易变变量 219 15.3.5语句与函数 220 15.3.6Shader简单示例 220 15.4在OpenGL中使用Shader 221 15.4.1在OpenGL中创建Shader 221 15.4.2属性变量 224 15.4.3统一变量 226 15.4.4错误处理 227 15.4.5清理工作 228 15.5在Cocos2d-x中使用Shader 228 15.5.1Cocos2d-x的Shader架构 228 15.5.2Cocos2d-x内置Shader规则 229 15.5.3编写Shader 232 15.5.4使用Shader的步骤 234 第16章使用Shader——常用特效 236 16.1Blur模糊效果 236 16.2OutLine描边效果 238 16.3RGB、HSV与HSL效果 240 16.4调整色相 241 16.5流光效果 243 第2篇Lua篇 第17章Lua基础概述 248 17.1类型与值 248 17.2操作符 249 17.2.1算术操作符 249 17.2.2关系操作符 249 17.2.3逻辑操作符 250 17.2.4其他操作符 250 17.3语句 250 17.3.1赋值语句 250 17.3.2语句块 251 17.3.3条件语句 251 17.3.4循环语句 251 17.4函数 252 17.4.1定义函数 252 17.4.2调用函数 252 17.4.3函数参数 253 17.4.4尾调用 253 17.5闭包与泛型for 254 17.5.1闭包 254 17.5.2泛型for 255 第18章Lua——table 257 18.1使用table 257 18.1.1创建table 257 18.1.2访问table 258 18.1.3修改table 258 18.1.4删除table 258 18.1.5遍历table 259 18.2元表metatable 259 18.2.1元方法 260 18.2.2算术、关系与连接元方法 260 18.2.3特殊的元方法 261 18.2.4__index元方法 262 18.2.5__newindex元方法 262 18.2.6__mode元方法 263 18.3packages介绍 264 18.3.1require()方法 264 18.3.2编写模块 265 18.4面向对象 266 18.4.1定义类 266 18.4.2实例化 267 18.4.3继承 268 18.5table库 269 18.5.1插入 269 18.5.2排序 269 18.5.3pack()和unpack()方法 270 18.5.4table长度 270 第19章Lua与C的通信 271 19.1准备工作 271 19.1.1头文件与链接库 272 19.1.2lua_State指针 272 19.1.3堆栈 273 19.1.4压入堆栈 273 19.1.5访问堆栈 274 19.1.6堆栈的其他操作 275 19.2操作table 275 19.2.1如何将table传入Lua 275 19.2.2如何获取Lua返回的table 276 19.3C/C++中调用Lua 277 19.3.1执行Lua片段 277 19.3.2执行Lua脚本文件 278 19.3.3调用Lua函数 279 19.4注册C/C++函数给Lua调用 279 19.5将C++的类传给Lua 281 第20章Cocos2d-x原生Lua框架详解 284 20.1Cocos2d-x原生Lua框架结构 284 20.1.1Lua核心层 284 20.1.2Lua脚本引擎 285 20.1.3Cocos2d-x到Lua的转换层 285 20.1.4Lua辅助层 285 20.2使用Cocos2d-x原生Lua框架 285 20.2.1在Cocos2d-x中调用Lua 285 20.2.2在Lua中操作Cocos2d-x 286 20.3Cocos2d-x原生Lua框架运行流程 289 20.3.1LuaEngine初始化流程 289 20.3.2加载Lua脚本 291 20.3.3Cocos2d-x到Lua的事件分发 293 20.3.4Lua辅助层初始化流程 297 20.3.5Lua辅助层的实用工具 298 20.4使用genbindings.py导出自定义类 302 20.4.1各个平台的环境搭建 303 20.4.2编写要导出的C++的类 304 20.4.3编写ini配置文件 304 20.4.4修改并执行genbindings.py 305 20.4.5注册并在Lua中使用 306 20.5扩展Cocos2d-xLua 307 20.5.1编写扩展方法 307 20.5.2注册到类中 309 20.6lua-tests导读 309 第21章Cocos2d-xQuick框架详解 310 21.1Quick简介 310 21.2Quick框架结构 310 21.3使用Quick 312 21.3.1创建Quick项目 312 21.3.2第一个Quick程序 314 21.3.3开发工具 316 21.4Quick运行流程分析 319 21.4.1初始化流程 319 21.4.2MVC框架运行流程 320 21.5Quick脚本框架详解 321 21.5.1Quick脚本框架整体结构 321 21.5.2Quick框架基础模块 322 21.5.3Quick脚本框架初始化流程 323 第22章Quick框架实践——MVC框架 325 22.1组件系统详解 325 22.1.1EventProtocol事件组件 326 22.1.2StateMachine状态机组件 327 22.2ModelBase详解 329 22.3MVC示例详解 330 22.3.1代码结构简介 331 22.3.2启动流程详解 331 22.3.3发射子弹 337 22.3.4命中目标 338 22.4小结 340 第3篇网络篇 第23章网络游戏——网游开发概述 344 23.1弱联网游戏 344 23.2强联网游戏 345 23.3局域网游戏 346 第24章弱联网游戏——Cocos2d-x客户端实现 347 24.1客户端请求流程 347 24.2Libcurleasy接口详解 348 24.2.1关于请求链接 348 24.2.2关于Post提交表单 349 24.2.3关于读写 350 24.3使用多线程执行请求 351 24.4使用LibcurlMulti接口进行非阻塞请求 352 24.4.1Multi接口 352 24.4.2Multi工作流程 353 24.5使用非阻塞的Libcurl实现签到功能 357 24.5.1初始化界面 358 24.5.2发起请求 358 24.5.3处理结果 359 24.5.4解析结果 360 第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.1Socket接口与TCP 369 26.1.1TCP服务器与客户端交互流程 370 26.1.2SocketAPI详解 372 26.1.3WindowsSocketAPI详解 376 26.2简单的TCP服务器端与客户端 376 26.2.1TCP服务器实现 377 26.2.2TCP客户端实现 379 26.3非阻塞Socket与select()函数 380 26.3.1非阻塞Socket 380 26.3.2select()函数的使用 380 26.3.3调整TCP服务器为Select模型 382 26.4半包粘包 384 26.4.1什么是半包粘包 384 26.4.2处理半包粘包 385 26.5心跳与超时 387 26.5.1TCP的死连接 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.2kxServer的使用 404 28.3NetDemoServer服务器 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.2UDP通信流程 424 30.2.1sendto()函数 424 30.2.2recvfrom()函数 425 30.3UDP广播 425 30.3.1什么是网络号和主机号 426 30.3.2A类、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.1Android环境搭建基础 440 32.1.1JDK和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使用AndroidStudio打包 453 32.3.1cocoscompile命令 453 32.3.2编译打包AndroidStudio 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.1Android基本概念 461 33.1.1Activity简介 461 33.1.2Intent简介 463 33.1.3资源与R.java 463 33.1.4AndroidManifest.xml简介 463 33.2HelloJNI项目 463 33.2.1使用Eclipse创建项目 463 33.2.2使用AndroidStudio创建项目 465 33.3编写JNI的C++代码 467 33.3.1为Eclipse添加Android.mk和hello.c 467 33.3.2在AndroidStudio下编写JNI 468 33.3.3C++的函数原型 471 33.3.4C++调用Java 472 33.4Java调用C++ 473 33.5在C++程序中使用Java 474 33.6在Cocos2d-x中实现Java和C++的互调 479 33.6.1Cocos2d-x的JNI初始化 480 33.6.2在Cocos2d-x中调用Java 480 33.6.3在Java中调用Cocos2d-x 481 33.7Android.mk和Application.mk详解 481 33.7.1认识Android.mk 481 33.7.2用Android.mk添加源文件以及指定头文件目录 482 33.7.3在Android.mk中引用其他模块(第三方库) 482 33.7.4Android.mk的一些变量和函数 484 33.7.5关于Application.mk 484 33.8ABI详解 485 33.8.1常见的ABI 485 33.8.2如何选择ABI 485 33.8.3如何生成对应ABI的so 486 33.9调试JNI代码 486 33.9.1AndroidStudioJNI调试环境搭建 487 33.9.2AndroidStudio的断点调试 490 第34章iOS环境搭建与真机调试 492 34.1iOS环境搭建 492 34.1.1环境搭建 492 34.1.2Windows移植iOS 493 34.2iOS证书 494 34.2.1Mac的证书 495 34.2.2注册开发者 495 34.2.3如何获得证书 495 34.2.4创建证书 496 34.2.5关于证书密钥 498 34.3iOS真机调试 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.1Objective-C基础语法 511 35.1.1Objective-C的一些特性 511 35.1.2Objective-C的类 512 35.2Objective-C与C++混编 514 第36章接入AnySDK 515 36.1AnySDK概述 515 36.1.1为什么要接入AnySDK 515 36.1.2AnySDK架构简介 516 36.1.3AnySDK快速接入指引 517 36.2接入AnySDKAndroid框架 520 36.2.1导入AndroidAnySDKFramework 521 36.2.2初始化AnySDKFramework 522 36.3接入AnySDKiOS框架 526 36.3.1导入AnySDKFramework 527 36.3.2初始化AnySDKFramework 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游戏开发(进阶卷).epub"网盘下载"

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件76556431@qq.com投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • 何其不幸
  • 感到骄傲
  • 好久不见情何以堪
  • 太多的挽留为何说出口
  • 古旧钟摆
  • 寄收温情
  • 病魂常似秋千索桥
  • 修图照骗大赛常驻嘉宾
  • 靠别拿劳资当二逼
  • 合拍爱人
  • 那年流光未至
  • 轩叔君
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!