精通Cocos2d-x游戏开发 基础卷

精通Cocos2d-x游戏开发 基础卷 pdf epub mobi txt 电子书 下载 2025

王永宝 著
图书标签:
  • Cocos2d-x
  • 游戏开发
  • C++
  • 游戏引擎
  • 移动游戏
  • Qt
  • 图形编程
  • 游戏设计
  • 入门
  • 教程
  • 开发技巧
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302432029
版次:1
商品编码:11907055
品牌:清华大学
包装:平装
开本:16开
出版时间:2016-04-01
用纸:胶版纸
页数:388
字数:606000

具体描述

产品特色

编辑推荐

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

  游戏开发牛人,四年时间,三易其稿,精心打磨,成就这本精良之作

  专注于Cocos2d-x引擎底层机制,致力于让初学者成为一个基础扎实、靠谱的程序员

  快速入门 → 基础框架 → UI与交互 → CocoStudio工具链,都是干货,满满诚意

  内容新颖,以当前流行的Cocos2d-x游戏引擎版本3.x为主进行讲解

  深入讲解了指针、内存、纹理等大多数初学者掌握不牢固的重要知识点

  深入剖析了Cocos2d-x引擎在Android、Win32和iOS等系统下的运行流程

  深入剖析了大量隐藏在背后的细节、解决问题的方法和思路,以及各种实用技巧和建议

  思路分析为主,实现方法次之,举一反三,将这些能力应用于其他引擎的学习中

  风格简洁,图文并茂,字斟句酌,表述严谨,将知识准确地呈现在读者面前

  内容虽然基础,但却极具深度,既适合基础薄弱的程序员入门,也适合想透彻研究Cocos2d-x引擎的程序员进阶

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


游戏开发图书海报:

内容简介

  《Cocos2d-x游戏开发》分为《基础卷》和《进阶卷》两个分册。两卷书籍都有明确的写作目的。《基础卷》专注于Cocos2d-x引擎基础,致力于让Cocos2d-x初学者成为一个基础扎实、靠谱的程序员。《进阶卷》专注于各种实用技术,是作者多年开发经验的结晶,书中的技术点大多是基于实际工作中碰到的问题提炼而来,从问题的本质出发到解决问题的思路,提供了多种解决方案,并对比各方案的优缺点,启发读者思考。
  本书为《Cocos2d-x游戏开发》的《基础卷》,共31章,分为4篇。第1篇为《入门篇》,涵盖的主要内容有Cocos2d-x开发环境、学习建议、注意事项及低级错误总结,以及必备的C++编程基础和指针知识等。第2篇为《基础框架篇》,涵盖的主要内容有节点系统、内存管理、场景和层、精灵、动作系统、动画、纹理、文字、运行机制、渲染机制、消息机制和Schedule等。第3篇为《UI与交互篇》,涵盖的主要内容有触摸输入、文本输入、按钮与重力感应输入、Menu和MenuItem,以及GUI框架的功能控件、文本输入、文本显示及容器控件等。第4篇为《CocoStudio工具链篇》,涵盖的主要内容有CocoStudio的UI编辑器、场景编辑器、动画编辑器、2.x编辑器及CocosBuilder等。
  本书适合学习Cocos2d-x游戏开发的零基础读者阅读,尤其适合Cocos2d-x自学人员。对于大中专院校的学生和社会培训班的学员,本书也是一本不可多得的学习教程。
  快速了解本书精华内容
  入门篇
  Cocos2d-x启航
  使用Cocos2d-x
  低级错误大全
  图解指针
  C++11简介
  基础框架篇
  节点系统
  内存管理
  场景和层
  精灵详解
  动作系统
  播放动画
  纹理详解
  显示文字
  运行机制
  渲染机制
  消息机制
  Schedule详解
  UI与交互篇
  触摸输入
  文本输入
  按钮与重力感应输入
  Menu和MenuItem
  GUI框架概述
  GUI框架功能控件
  GUI框架文本输入和显示
  GUI框架容器控件
  CocoStudio工具链篇
  CocoStudio概述
  CocoStudioUI编辑器
  CocoStudio场景编辑器
  CocoStudio动画编辑器
  CocoStudio 2.x编辑器
  CocosBuilder

作者简介

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

内页插图

精彩书评

  永宝拥有丰富的一线研发经验,对Cocos引擎也有着深入而独到的理解。整整的四年时间里,他对这本书倾注了大量的心血,三易其稿,精心打磨。这份执着的热忱和精益求精的态度令人感动。宝剑锋从磨砺出,这本书内容新颖,紧跟趋势,注重本质,讲述准确,由浅入深,层层递进,既能够引领初学者打开Cocos开发世界的大门,也能帮助具有一定经验的开发者更上一层楼,是本不可多得的专业好书。

  ——Cocos2d-x创始人 王哲

目录

第1篇 入门篇
第1章 Cocos2d-x启航
1.1 特点、内容结构以及建议
1.2 Cocos2d-x简介
1.3 从2.x到3.x
1.4 约定
1.5 启航
1.5.1 Windows
1.5.2 Mac
1.5.3 Linux
1.5.4 Cocos引擎
第2章 使用Cocos2d-x
2.1 Cocos2d-x世界
2.1.1 显示图片
2.1.2 执行逻辑
2.1.3 获取输入
2.2 分析HelloCpp
2.3 小结
第3章 低级错误大全
3.1 create和retain-release
3.2 继承对象的create
3.3 多个对象执行同一个Action
3.4 忘记调用父类的虚函数
3.5 隐藏在代码中的神秘杀手,节点中的节点操作
3.6 普通对象和new出来的对象
3.7 不要忘记init
3.8 addChild失败
3.9 在onEnter中调用parent的addChild
3.10 忘记移除
3.11 重载draw注意事项
3.12 关于引用
3.13 关于命名空间
3.14 关于类之间的互相包含
3.15 关于平台相关的API
3.16 关于update中写逻辑
3.17 关于调试
3.18 小结
第4章 图解指针
4.1 指针与内存
4.2 指针操作
4.3 指针与数组
4.4 函数指针
4.5 野指针和内存泄漏
第5章 C++11简介
5.1 初始化列表
5.2 类型推导
5.3 范围推导
5.4 智能指针和空指针
5.5 Lambda特性
5.6 变长参数模板
5.7 右值引用
5.7.1 分辨左值和右值
5.7.2 移动语义
5.7.3 完美转发
5.8 显式虚函数重载
5.9 小结
第2篇 基础框架篇
第6章 节点系统
6.1 节点的表现
6.1.1 位置
6.1.2 旋转和倾斜
6.1.3 缩放
6.1.4 锚点Anchor
6.1.5 渲染顺序ZOrder
6.1.6 尺寸
6.1.7 懒惰计算
6.1.8 其他属性介绍
6.2 节点的使用
6.2.1 使用Action
6.2.2 使用Schedule
6.3 节点和节点
6.3.1 添加子节点
6.3.2 删除节点
6.3.3 节点查询
6.3.4 节点之间的空间变换
6.4 节点树的渲染
6.5 节点与组件
第7章 内存管理
7.1 内存基础知识
7.1.1 内存区域的划分
7.1.2 new和malloc的区别
7.1.3 堆和栈的区别
7.1.4 代码分析
7.2 内存泄露、野指针和跨动态链接库的内存使用
7.2.1 内存泄露
7.2.2 野指针
7.2.3 动态链接库的内存
7.3 Cocos2d-x的引用计数
7.4 容器对象的内存管理
7.5 复制对象
7.6 内存优化
第8章 场景和层
8.1 Scene场景
8.1.1 场景和Director
8.1.2 切换场景与引用计数
8.1.3 场景切换特效
8.2 Layer层
8.2.1 Layer层详解
8.2.2 LayerColor颜色层详解
8.2.3 LayerGradient渐变层详解
8.2.4 LayerMultiplex复合层详解
第9章 精灵详解
9.1 Sprite详解
9.1.1 使用Sprite
9.1.2 创建Sprite
9.1.3 初始化流程
9.1.4 设置纹理
9.1.5 渲染
9.2 SpriteFrame和SpriteFrameCache详解
9.2.1 SpriteFrame详解
9.2.2 SpriteFrameCache详解
9.2.3 SpriteFrameCache加载流程
9.3 SpriteBatchNode详解
9.3.1 创建SpriteBatchNode
9.3.2 添加与删除SpriteBatchNode
9.3.3 使用SpriteBatchNode
第10章 动作系统
10.1 使用Action
10.2 Action整体框架
10.2.1 Action类
10.2.2 ActionManager类
10.3 Action运行流程
10.3.1 瞬时动作ActionInstant
10.3.2 持续动作ActionInterval
10.3.3 组合动作
10.3.4 函数动作
10.3.5 时间动作
10.4 Action的分类
10.4.1 瞬间动作
10.4.2 持续动作
10.4.3 组合动作
10.4.4 变速动作
10.4.5 扩展动作
10.4.6 特效动作
第11章 播放动画
11.1 播放帧动画
11.2 创建Animation
11.2.1 基于Plist文件自动创建Animation
11.2.2 解析TexturePacker的Plist文件
11.2.3 使用AnimationCache
11.2.4 经验分享
11.3 帧动画框架剖析
11.3.1 帧动画系统结构
11.3.2 Animate运行流程
11.4 进度动画
11.4.1 半径扫描效果
11.4.2 水平扫描效果
11.4.3 垂直扫描效果
11.4.4 四边扩散/收缩效果
第12章 纹理详解
12.1 在Cocos2d-x中使用纹理
12.1.1 Texture的初始化
12.1.2 纹理和Sprite的关系
12.1.3 POT和NPOT
12.1.4 纹理混合 Blend
12.1.5 Alpha预乘
12.1.6 纹理参数
12.1.7 纹理过滤 Texture Filter
12.1.8 纹理环绕
12.1.9 Mip贴图
12.1.10 渲染纹理
12.2 管理纹理
12.2.1 使用TextureCache管理纹理
12.2.2 使用TextureCache加载纹理
12.2.3 异步加载纹理
12.3 纹理格式
12.4 纹理压缩
12.4.1 纹理压缩格式对比
12.4.2 在Cocos2d-x中使用纹理压缩
12.4.3 使ETC1支持透明
第13章 显示文字
13.1 使用Label
13.1.1 LabelTTF详解
13.1.2 LabelBMFont详解
13.1.3 LabelAtlas详解
13.1.4 Label详解
13.2 新Label框架剖析
13.2.1 整体框架
13.2.2 运行流程
13.2.3 STRING_TEXTURE类型Label的运行流程
13.2.4 使用FontAtlas的Label的运行流程
13.2.5 FontAtlas的创建流程
13.3 关于中文显示
13.3.1 使用中文配置文件csv/xml/plist
13.3.2 将代码文件转为UTF-8编码
13.3.3 使用iconv转换中文
13.4 造字工具
13.4.1 使用BMFont工具
13.4.2 使用Hiero工具
第14章 运行机制
14.1 Cocos2d-x内部运行流程
14.1.1 Application详解
14.1.2 Director详解
14.2 Cocos2d-x在Windows下的运行流程
14.3 Cocos2d-x在Android下的运行流程
14.3.1 启动游戏
14.3.2 游戏事件与主循环
14.4 Cocos2d-x在iOS下的运行流程
14.4.1 启动游戏
14.4.2 主循环
第15章 渲染机制
15.1 渲染树VS渲染命令
15.1.1 渲染树
15.1.2 渲染命令
15.2 Cocos2d-x 3.0渲染框架
15.3 渲染命令详解
第16章 消息机制
16.1 事件通知
16.2 NotificationCenter和EventDispatcher
16.2.1 使用EventDispatcher
16.2.2 相关接口
16.2.3 其他监听者
16.2.4 使用NotificationCenter
16.3 内部流程以及注意事项
16.3.1 消息的通知流程
16.3.2 消息的注册流程
16.3.3 消息的注销流程
16.4 小结
第17章 Schedule详解
17.1 Schedule接口简介
17.1.1 回调函数
17.1.2 注册回调
17.1.3 注销回调
17.1.4 时间缩放、暂停、恢复
17.1.5 优先级
17.1.6 线程安全
17.2 Schedule整体结构与运行流程
17.2.1 整体结构
17.2.2 外部流程
17.2.3 更新顺序
17.2.4 注册与注销
17.3 Schedule使用过程中的问题
第3篇 UI与交互篇
第18章 触摸输入
18.1 如何监听触摸消息
18.1.1 监听触摸消息
18.1.2 触摸监听者
18.1.3 触摸消息
18.1.4 注册监听
18.2 触摸输入运行流程
18.3 判断点击
18.4 多点触摸
18.5 点击穿透
第19章 文本输入
19.1 TextFieldTTF简介
19.2 使用TextFieldTTF
19.3 扩展TextFieldTTF
19.4 详解IME
第20章 按钮与重力感应输入
20.1 重力感应
20.1.1 摇一摇
20.1.2 多角度倾斜
20.2 物理按键
第21章 Menu和MenuItem详解
21.1 使用Menu和MenuItem
21.2 结构框架与执行流程
21.2.1 Menu详解
21.2.2 MenuItem详解
21.2.3 执行流程
21.3 MenuItem详解
21.3.1 MenuItemLabel详解
21.3.2 MenuItemAtlasFont详解
21.3.3 MenuItemFont详解
21.3.4 MenuItemSprite详解
21.3.5 MenuItemImage详解
21.3.6 MenuItemToggle详解
21.4 实现TabView
第22章 GUI框架概述
22.1 GUI框架简介
22.1.1 命名空间与头文件
22.1.2 工具方法
22.1.3 九宫缩放
22.2 UIWidget详解
22.2.1 保护节点ProtectNode
22.2.2 高亮相关
22.2.3 位置布局相关
22.2.4 触摸相关
22.2.5 控件焦点
22.2.6 实现自己的Widget
22.3 UILayout详解
22.3.1 Layout背景
22.3.2 裁剪
22.3.3 焦点查找
22.3.4 Layout布局
第23章 GUI框架之功能控件
23.1 UIButton控件
23.1.1 创建Button
23.1.2 加载图片
23.1.3 设置九宫
23.1.4 设置文字
23.2 UICheckBox控件
23.2.1 创建CheckBox
23.2.2 加载图片
23.2.3 选择
23.3 UIImageView控件
23.3.1 创建ImageView
23.3.2 纹理与九宫
23.4 UILoadingBar控件
23.4.1 创建LoadingBar
23.4.2 纹理与九宫
23.4.3 方向与进度
23.5 UISlider控件
23.5.1 创建与加载纹理
23.5.2 九宫
23.5.3 进度与回调
第24章 GUI框架之文本输入和显示
24.1 UIText、UITextAtlas和UITextBMFont文本显示控件
24.2 UIRichText文本显示控件
24.3 UITextField文本输入控件
24.3.1 创建TextField
24.3.2 触摸相关
24.3.3 输入密码
24.3.4 设置、获取文本
24.3.5 输入回调
24.3.6 自动换行与对齐
24.4 UIEditBox文本输入控件
24.4.1 创建EditBox
24.2.2 文本与输入提示文本
24.4.3 输入委托
24.4.4 输入模式
24.4.5 标签与限制
第25章 GUI框架之容器控件
25.1 UIScrollView容器控件
25.1.1 拖曳滚动
25.1.2 InnerContainer详解
25.2 UIListView容器控件
25.3 UIPageView容器控件
25.4 UIWebView容器控件
25.4.1 加载页面
25.4.2 操作页面
25.4.3 页面回调
第4篇 CocoStudio工具链篇
第26章 CocoStudio概述
26.1 CocoStudio是什么
26.2 CocoStudio的设计目标
26.3 使用CocoStudio
26.3.1 使用UI编辑器
26.3.2 使用动画编辑器
26.3.3 使用数据编辑器
26.3.4 使用场景编辑器
26.3.5 使用CocoStudio 2.x
26.4 管理资源
26.5 版本对应
第27章 CocoStudio UI编辑器
27.1 使用UI编辑器
27.2 编写代码
27.2.1 加载UI
27.2.2 UI动画
27.2.3 初始化UI
27.2.4 更新UI
27.3 分辨率适配
27.4 扩展UI编辑器
第28章 CocoStudio场景编辑器
28.1 使用场景编辑器
28.2 组件系统
28.3 触发器
28.3.1 触发器的使用
28.3.2 触发器的代码框架以及运作流程
28.3.3 触发器的扩展
28.4 加载场景
第29章 CocoStudio动画编辑器
第30章 CocoStudio 2.x编辑器
第31章 使用CocosBuilder

精彩书摘

  第1章 Cocos2d-x启航
  本章主要介绍以下内容:
  简单介绍本书的特点、内容结构以及不同人群的阅读建议。
  简单介绍Cocos2d-x。
  对比Cocos2d-x 3.x以及之前的版本。
  版本相关的代码约定。
  扫除阻碍,让你的Cocos2d-x跑起来。
  1.1 特点、内容结构以及建议
  本书的特点是言简意赅、图文并茂、态度严谨、知识面广,一个问题能用一句话说清楚,尽量不说两句,尽量用图片来表达意图。字里行间反复斟酌、扩散思维、举一反三。此书不是一本贴代码的书,但程序离不开代码。它也不是一本TestCpp的注释书,但我们拥抱TestCpp。虽然个人追求简洁,但适当的举例可以帮助理解,不停留在表面的使用,而是深入到内部的实现,扩展到实际应用。三年时间,倾我心血,经过了数次推翻重写,相信会成为一本实用的Cocos2d-x入门到进阶书籍!
  Cocos2d-x游戏开发分为上下两卷,本书是上卷《基础卷》,共有4篇,都属于Cocos2d-x的入门基础,与Cocos2d-x紧密相关。基础乃重中之重,而在Cocos2d-x风靡之际,很多Java、ActionScript程序员以及应届生转战Cocos2d-x,基础不甚牢固,相信通过阅读、理解本书,可以起到巩固基础、丰富底蕴的作用,成为一个“靠谱”的Cocos2d-x开发人员。
  而下卷《进阶卷》则偏向具体的实战经验,更多的是讲解思路、方法和实践上,包含了物理、适配、热更新、存档、加密等实用技术,客户端网络编程到PHP、C++服务端的开发,以及丰富的跨平台开发经验,可以作为Cocos2d-x游戏开发的案头书,也可作为涉猎书。
  对于初学者而言,其中的一些章节描述可能过于深入,对于这些章节中不理解的部分,初学者不必深究,暂且跳过。
  第1篇是《入门篇》,主要介绍如何让Cocos2d-x运行起来,新建项目,Cocos2d-x正确的使用方法,一些易犯错误的总结,以及C++11和指针的指引,这部分主要是给没有Cocos2d-x开发经验的人阅读,C++11简介和图解指针这两章适合由Unity3D(简称U3D)、Java或其他语言转到Cocos2d-x的人阅读,易犯错误总结适合Cocos2d-x经验不丰富的人阅读。
  第2篇是《基础框架篇》,主要介绍Cocos2d-x最核心的系统,它是Cocos2d-x的基本功,适合需要系统学习或者复习Cocos2d-x的人阅读。
  第3篇是《UI与交互篇》,这一篇专门介绍Cocos2d-x的各种交互手段,以及整个GUI架构,同基础框架,也属于Cocos2d-x的基本功。
  第4篇是《CocoStudio工具链篇》,工欲善其事必先利其器,这一篇主要围绕CocoStudio工具集为核心,介绍了常用工具的使用,解决了一些使用过程中遇到的问题,适合要了解或学习Cocos2d-x周边工具的人阅读。
  1.2 Cocos2d-x简介
  Cocos2d-x是从Cocos2d发展而来的移动2D游戏框架,可以用C++、Lua、JavaScript来进行开发。Cocos2d-x项目可以很容易地建立和运行在iOS、Android、黑莓Blackberry等操作系统中。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者可以很方便地在桌面操作系统中开发和调试。在操作系统之上,是平台相关的中间层,以及一些第三方的库,如物理、脚本、图形、声音等,中间层之上,是Cocos2d-x的封装,而在最上层,就是使用Cocos2d-x引擎开发的游戏逻辑,整体架构如图1-1所示 (该图来源于Cocos2d-x官网文档)。
  图1-1 引擎整体架构
  框架实现了各个平台相关的封装,提供了图像渲染、UI系统和输入交互、文件操作、动作动画、消息系统、时间调度、音乐音效播放等一系列实用的基础功能,还包含了物理引擎、脚本绑定等可选功能。
  围绕Cocos2d-x引擎周边有Quick-Cocos2d-x,这是在Cocos2d-x的基础上建立的一个以Lua为主的框架,旨在提高开发效率。
  Cocos2d-JS是一个基于Cocos2d-x,使用JavaScript的Web游戏框架。
  Cocos Code IDE是一个程序员使用的编码工具,主要用于编辑和调试Lua、JavaScript代码。
  Cocos Studio则是一套各种资源编辑处理的工具,为Cocos2d-x输出场景、UI、动画等资源。
  最后,所有的内容会被集成到Cocos引擎中,Cocos引擎整合了Cocos2d-x及其周边的分支和工具,目的是实现一键安装,建立统一清晰的工作流。
  1.3 从2.x到3.x
  Cocos2d-x 从2.x版本到3.x版本发生了巨大的变化,这里简单罗列如下:
  C++标准使用了新的C++11标准,语法上的差异在第5章中将详细介绍,在Windows系统下,需要使用VS 2012以上的版本才能编译C++11标准的代码。在Mac下的XCode从4.1开始支持C++11特性,但更后面的版本支持得更好。Linux则需要使用GCC 4.7以上的编译器才支持C++11。
  渲染方面从渲染树修改为渲染队列,新增的自动批处理渲染大大减少了DrawCall,提高了渲染效率,在第15章中会详细介绍。
  命名风格变化很大,摆脱了Cocos2d,摆脱了OC化。
  重构了消息机制,将触摸、按键、重力等各种输入从委托模式调整为监听者模式。
  新增了3D相关的功能,包括一些简单的3D特效和3D碰撞检测。
  容器重做,废弃了原先自定义的系列容器,直接封装了STL容器使用。
  简化跨平台项目创建和打包的流程,Cocos2d-x从2.x版本开始就一直致力于简化该过程。
  在Node中封装了物理引擎,但这个封装并不恰当。
  提供了全局ZOrder顺序,同时关联到渲染和点击触碰。
  1.4 约 定
  在开始之前,先声明一些约定,以应对Cocos2d-x变化莫测的接口,接口的名字叫什么,本不必纠结,但我们需要将程序跑起来,所以接口的名字错不得。
  这里主要声明Cocos2d-x 2.x和3.x版本的名字区别,以便于在介绍代码时,不被版本所困。本书中的代码基本都是以3.0之后的代码为准, 除了一些3.x的新特性外,使用2.x的可以通过遵循我们的约定来使代码运行起来。
  代码上的第一个改变是去除了CC前缀,如果读者使用的是2.x版本,那么引擎的类名需要加上CC前缀,而3.x是没有CC前缀的。
  常用类和数据结构,CCPoint改为了Vec2,CCObject改为了CCRef。
  获取单例接口的调整,从sharedxxxxx改为了getInstance。
  变量命名,从m_b touchEnabled 到 _touchEnabled,摒弃了匈牙利命名法。
  因为接口改变而导致的编译错误并不难解决,与其介绍所有版本的接口区别,不如直接解决接口错误,这是程序员的基本能力。如果编译错误都解决不了,如何解决更复杂的错误?大部分的代码差异都只是一些名字上的小改动,这种用约定来解决。
  约定解决不了的编译错误,如果是对象的方法名改了,可以用“转到定义”的功能来跳转到错误对象的头文件,然后搜索名字最接近的函数。如果是对象的名字被改了,可以通过查看使用了该对象的相关接口来确定该对象的新名字,然后 修改。
  一些代码是经历了重构,接口甚至思想都不一样了,我们会在具体的章节中对比、分析,看重构前后有什么区别,是更好还是更坏,好在哪里,坏在哪里。
  文中会使用粗体来表示重点内容,用圆括号括起来的内容表示旁白或旁注。
  ......
  第3章 低级错误大全
  一些低级错误可能是阻碍一个初学者入门的最大障碍。低级错误可能会狠狠地打击初学者的信心和学习热情!入门篇的目的是为初学者扫清入门障碍,巩固基础,建立对Cocos2d-x的整体认识,降低初学过程的出错几率。
  在使用Cocos2d-x时,特别是新手,不犯错误是不可能的,本章将告诉你,Cocos2d-x的代码,不能怎样写!这里面有些是习惯问题,有些是新手比较容易犯的问题,也有些是老手都有可能不小心中招的问题。本章尽量将这些问题的症状和原因一一列出,以便中招的时候能够提供一些线索。
  这里总结的一些问题是笔者从Cocos2d-x 1.x版本到现在的Cocos2d-x 3.x发现的问题,随着版本的更新,其中一些问题已经被修复,但大部分的修复只是从运行错误变为了编译错误。本章主要介绍以下内容:
  create和retain-release。
  继承对象的create。
  多个对象执行同一个Action。
  忘记调用父类的虚函数。
  隐藏在代码中的神秘杀手,节点中的节点操作。
  普通对象和new出来的对象。
  不要忘记init。
  addChild失败。
  在onEnter中调用parent的addChild。
  忘记移除。
  重载draw注意事项。
  关于引用。
  关于命名空间。
  关于类之间的互相包含。
  关于平台相关的API。
  关于update中写逻辑。
  关于调试。
  3.1 create和retain-release
  这是一位自称有8年C++经验的“大牛”犯下的低级错误,错误是这样产生的,在初始化时使用create方法创建了一个动画对象,在初始化函数中进行测试,这个动画是可以正常播放的。
  根据需求,需要在对象被攻击到时播放这个动画,于是将动画对象作为成员变量,在init中使用create方法创建动画对象,初始化后并赋值给成员变量。
  将播放动画的代码迁移至update的逻辑中,在触发相应的事件时,播放动画,但运行后就崩溃了,原因是动画对象被释放了。
  因为使用create方法创建出来的对象的release在这一帧会被Cocos2d-x调用,如果不希望它被释放,请确保你执行了retain操作。执行之后调用release操作来释放,确保没有内存泄漏。更多关于内存的问题可以参考第7章。
  解决这个问题有两种方法,第一种是在每次需要使用一个对象的时候,才调用create方法进行创建,Cocos2d-x中大部分情况下都是这样使用的。第二种是在初始化时创建一次,然后调用对象的retain方法,以避免该对象在外部被释放,后在不需要使用该对象时,调用对象的release方法,以避免内存泄露。
  注意:文中retain指执行retain(引用)操作,或调用retain(引用)操作。rease指执行release(释放)操作,调用release(释放)操作。后面为表述方便,直接用retain和release来表达。
  3.2 继承对象的create
  这是笔者曾经犯过的一个小错误,笔者的对象MySprite继承于Sprite,然后习惯性地使用MySprite::create来创建对象,结果发现create创建出来的对象并不是MySprite而是Sprite。这会导致一些奇怪的表现,而原因正是在MySprite的定义中遗漏了一行代码——CREAT_FUNC(MySprite),导致create调用的是父类Sprite的方法。
  3.3 多个对象执行同一个Action
  当希望多个对象执行同一个Action时,并不能这样操作:
  Action* act = MoveTo::create(...);
  sprite1->runAction(act);
  sprite2->runAction(act);
  因为每个Action只能被一个对象执行,如果希望多个对象执行一个Action,可以使用clone来创建一个新的实例。
  3.4 忘记调用父类的虚函数
  这是一个很经典,很容易犯的错误,当我第一次碰到这个错误的时候,浪费了很多时间,因此希望能帮大家节省一些时间。如果你继承了某个Cocos2d-x的类,又重写了它的init或者onEnter函数,那么一不小心就可能出现一些比较奇怪的问题,例如,对这个对象施加一个动作,而这个对象没有任何反应,那么首先你会从这个动作上来找问题,而很难想到是因为没有调用到父类的函数。
  在很多情况下都需要用到继承、重写虚函数,当重写虚函数的时候,先看一下父类的这个虚函数做了什么。如果这些操作是必须的,就在函数中对父类的虚函数进行调用,如CGameObject继承了Sprite并重写了Sprite的onEnter。
  void CGameObject::onEnter()
  {
  //切记回调父类
  Sprite::onEnter();
  scheduleUpdate();
  }
  3.5 隐藏在代码中的神秘杀手,节点中的节点操作
  这是笔者2013年碰到的BUG,归功于自动提示,它制造了一个很隐蔽的BUG,笔者将一个节点添加到了另外一个节点中,希望每次单击它都能够向上移动x个单位,于是代码变成了这样:
  node->setPositionY(getPositionY() + dis);
  然后,这个对象就突然消失不见了,笔者以为是其他地方改变了其位置,或者被隐藏了或意外地删掉了,最后笔者跟踪到代码里面进行调试才发现,括号中的getPositionY返回的并不是自己的Y坐标,而是this的Y坐标,this != node,所以其就偏到屏幕外去了,在节点中操作其他节点时,代码不要输入太快!
  ……

前言/序言

  第一次接触Cocos2d-x是在2012年初。当时与一位朋友尝试着制作了一款小游戏,上了App Store平台。在开发中,笔者主要负责游戏美术,这其实不是笔者的长项,所以该游戏的美术效果可以用惨不忍睹来形容。虽然那时候的引擎版本只是1.x,并且开发的游戏相当失败,但通过这个游戏,笔者对Cocos2d-x产生了浓厚的兴趣。

  其实Cocos2d-x算不上是一款功能超强的游戏引擎,但它很简洁、小巧,是一款轻量级的游戏引擎。大多数程序员实际上更喜欢简洁的东西,而不是庞然大物。Cocos2d-x简洁的设计结合丰富的Demo,让人可以很快上手,并能使用它开发出一些简单的游戏。其代码的开源及跨平台特性也相当诱人。Cocos2d-x本身的这些特性结合市场的需求,使其很快就成为了手游开发的主流引擎之一。

  在Cocos2d-x刚开始火的那一段时间,市面上关于Cocos2d-x的书籍还十分匮乏。笔者利用业余时间对该引擎进行了深入研究,并能使用它开发了几个小游戏,也总结了一些开发经验。之后一段时间,笔者萌生了按照自己的想法写一本Cocos2d-x游戏开发图书的想法。这个想法很快便进入了实施阶段,但进展远没有想象的顺利。其原因一方面是笔者写作的速度跟不上Cocos2d-x的更新速度,另一方面是笔者的工作任务也很重,加之写作期间还开发了四五个游戏作品,这使得笔者本来就不充裕的时间更是捉襟见肘。

  的确,Cocos2d-x的更新非常频繁,并且引擎更新的同时带来了很多接口的变化,一些代码甚至需要进行重构。除了原有内容的变化改动之外,日益增加的新功能也加大了写作的难度。虽然2013年底笔者已经完成了初稿,但是回过头来阅读一遍,发现书稿难以达到自己的预期。于是笔者做了一个决定:推翻重写。在经历了几个月的重写之后,Cocos2d-x版本已经升级到了3.0。笔者发现又有许多新增功能和新特性需要重新了解和学习,于是又经历了一段时间的学习和使用,不得不决定再次对该书做较大的改动,几乎又推翻重写了一次。可以说,这几年笔者的业余时间只做了这么一件事情。从开始写作直至完成书稿,整个过程虽然寥寥数语,但却饱含艰辛。在写作的过程中,Cocos2d-x的书籍如雨后春笋,加上自己工作繁忙,写作时间所限,甚至还有放弃的念头。但写一本自己满意的Cocos2d-x图书的信念支撑笔者走到了最后。当然,这一切对笔者而言很有意义,也很有价值:其一是有机会能和读者共享自己的心得体会;其二是自己也得到了提升。毕竟写书相对于写代码而言需要考虑的东西更多。代码写错,还可以改正,而书写错则将误人子弟。

  考虑到读者群体的不同,笔者将本书分为《基础卷》和《进阶卷》两个分册。《基础卷》主要是为了让读者夯实Cocos2d-x游戏开发的基础知识,适合没有经验的零基础读者阅读。《进阶卷》的内容全面,且实用性很强,可以拿来就用,快速解决问题,适合想要进阶学习的读者阅读,也可以作为一本解决实际问题的手册使用。当然,对于想要全面而深入学习Cocos2d-x游戏开发的读者而言,则需要系统阅读这两本书方可。

  本书是《精通Cocos2d-x游戏开发》的《基础卷》,是一本略有深度的Cocos2d-x入门图书。本书系统地介绍了Cocos2d-x基础语法,并由浅入深介绍了Cocos2d-x游戏引擎底层的实现,同时还引申出了其他相关问题和使用时应该注意的事项。对于初学者,本书的部分内容可能略有些深入,如果遇到难以理解的地方,建议先跳过,等读完后续章节之后再回过头来阅读前面未理解的部分,相信对很多问题就有了新的认识。学习任何知识,基础都是重中之重,相信本书可以帮助读者打下Cocos2d-x游戏开发的坚实基础。

  本书内容特色

  1.内容新颖,紧跟趋势

  本书内容新颖,紧跟技术趋势,以当前主流的Cocos2d-x游戏引擎版本3.x为主进行讲解,在一些必要的地方也兼顾了早期的2.x版本的内容,并对新旧版本之间的差异做了必要说明,适合更多的读者群体阅读。

  2.追本溯源,注重核心

  本书用较多篇幅介绍了Cocos2d-x游戏引擎的基础框架,并对UI与交互的相关内容做了详细讲解。这些内容都是Cocos2d-x游戏引擎的核心技术,深入理解这些内容,便于读者更好地理解Cocos2d-x游戏引擎的底层实现。

  3.追求原创,与时俱进

  相较于市场上千篇一律的Cocos2d-x学习教程,本书力求做到与众不同,与时俱进。书中的内容不是堆砌知识点和简单地翻译技术文档,而是从学习和理解的角度出发,并结合作者的实际开发经验,按不同层次读者的学习特性组织内容和讲解,从而达到更好的讲授效果。

  4.由浅入深,循序渐进

  本书内容编排非常科学,讲解时先抛出一些简单的问题供读者思考,然后发散思维,再逐步扩展到更多、更深入的问题上,继而步步推进,抽丝剥茧,逐层深入,将读者顺利引领到不同阶段的学习之中。

  5.风格活泼,讲述准确

  刻板的风格不是笔者所钟爱的行文风格。笔者更喜欢用较为简单和自由的文字和读者交流,所以本书阅读起来并不会枯燥乏味。另外,讲解的准确性是科技图书的基本要求,只有准确的表达才能让读者不至于出现太多的理解偏差。所以笔者对书中的表述经过了反复斟酌和提炼,并采用了大量例图、举例和类比等手法,以便于读者更容易理解和掌握。

  6.举一反三,扩展思维

  本书并不满足于按部就班地介绍功能和API,而是从实际应用出发,扩散思维,在解决问题的同时,让读者思考问题的本质,以更深入地理解所学知识,从而达到举一反三,学以致用的效果。即所谓知行合一,方能真正掌握知识。

  本书内容及知识体系

  第1篇 入门篇(第1~5章)

  本篇属于Cocos2d-x开发的基础铺垫,涵盖的主要内容有Cocos2d-x开发环境搭建、学习建议、注意事项及低级错误总结,以及必备的C++编程基础和指针等。本篇主要是给没有任何Cocos2d-x使用经验的读者作为铺垫阅读。其中,图解指针和C++11简介这两章内容适合由Unity3D(简称U3D)、Java或其他语言转到Cocos2d-x的读者阅读。

  第2篇 基础框架篇(第6~17章)

  本篇主要介绍了Cocos2d-x的核心框架系统,属于Cocos2d-x开发必练基本功。本篇涵盖的主要内容有节点系统、内存管理、场景和层、精灵、动作系统、播放动画、纹理、文字显示、运行机制、渲染机制、消息机制和Schedule等。学习完本篇,读者可以掌握Cocos2d-x游戏引擎的运行原理及相关开发知识。

  第3篇 UI和交互篇(第18~25章)

  本篇专门介绍了Cocos2d-x的各种交互手段及整个GUI架构,同基础框架篇一样,本篇也属于Cocos2d-x的必练基本功。本篇涵盖的主要内容有触摸输入、文本输入、按钮与重力感应输入、Menu和MenuItem,以及GUI框架的功能控件、文本输入、文本显示及容器控件等。

  第4篇 工具链篇(第26~31章)

  工欲善其事必先利其器。本篇主要以CocoStudio的工具集为核心,介绍了常用工具的使用,解决了一些工具在使用过程中遇到的问题,适合想要了解或学习Cocos2d-x周边工具的读者阅读。本篇涵盖的主要内容有CocoStudio的UI编辑器、场景编辑器、动画编辑器、2.x编辑器及CocosBuilder等。

  本书阅读建议

  由于Cocos2d-x游戏引擎是基于C++的,所以一些基础的C++知识是必须要知道的。假如读者完全没有任何编程方面的经验,就不适合阅读本书。虽然本书中也介绍了部分C++的相关知识,但那是有针对性的,并不是系统地介绍。所以,如果读者没有任何编程基础,可以先阅读一本类似于《C++入门很简单》之类的图书。虽然C++入门并不是想象的那么简单,但这类图书还是可以让你对C++建立一个系统的了解。

  书中部分章节的内容可能较为深入,如果读者对这部分内容一时难以理解,则可以先跳过而阅读后续章节,等读完后续章节再回头阅读这部分能容,也许就豁然开朗了。

  书中的部分例子引用自Cocos2d-x引擎自带的TestCpp,读者学习的过程中可以参照TestCpp中的例子。虽然本书偏重于理论,但其中介绍到的代码还是可以在TestCpp中编写、修改,并运行起来,从而加深理解。

  另外,切勿死记硬背。编程学习不等于应付考试,很多知识点可以现用现查,解决问题就行。读者应该把注意力放在对编程本质的理解上。

  本书读者对象

  零基础学Cocos2d-x游戏开发的人员;

  Cocos2d-x自学人员;

  想系统学习Cocos2d-x的程序员;

  想巩固和深入理解Cocos2d-x基础的程序员;

  想开发跨平台手机游戏的人员;

  从其他开发转向Cocos2d-x的程序员;

  大中专院校的学生和社会培训的学员。

  本书源代码获取方式

  本书涉及的源代码大多是Cocos2d-x游戏引擎自身的代码。关于如何获取Cocos2d-x游戏引擎的完整代码,请读者详细阅读本书第1.5节中的介绍。

  本书的编写对笔者而言是一个不小的挑战。虽然笔者投入了大量的精力和时间,但只怕百密难免一疏。若读者在阅读本书时发现任何疏漏,希望能及时反馈给我们,以便及时更正,以便于和作者及广大读者交流学习心得,解决学习中遇到的各种问题。

  最后祝各位读者读书快乐,学习进步!

  作者


《精通Cocos2d-x游戏开发 基础卷》:零基础开启你的游戏开发之旅 你是否曾梦想亲手打造一款属于自己的游戏?是否对那些在屏幕上跳跃、奔跑、碰撞的虚拟世界充满好奇?是否渴望将脑海中奇思妙想的游戏创意变为现实?《精通Cocos2d-x游戏开发 基础卷》便是为你量身打造的启程指南,它将带领你从零开始,一步一个脚印地走进令人兴奋的游戏开发领域,让你掌握构建2D游戏的核心技术与方法。 本书不同于市面上许多泛泛而谈的教程,它深入浅出,循序渐进,将复杂的概念拆解成易于理解的模块,确保即使是没有任何编程基础的初学者,也能轻松上手。我们深知,对于新手而言,扑面而来的专业术语和复杂的代码逻辑是最大的障碍。《精通Cocos2d-x游戏开发 基础卷》正是要打破这一壁垒,用最平实易懂的语言,最贴近实际的应用场景,为你构建起坚实的游戏开发知识体系。 核心理念:从概念到实践,循序渐进 本书最大的特色在于其严谨的结构和科学的学习路径。我们不会一股脑地塞给你大量晦涩难懂的代码,而是从最基础的“为什么”和“是什么”入手,让你明白游戏开发的基本原理和Cocos2d-x的独特优势。 揭开Cocos2d-x的面纱: 你将了解到Cocos2d-x是什么?它为什么能够成为跨平台2D游戏开发的佼佼者?它的核心优势体现在哪些方面?本书将为你详细解读Cocos2d-x的架构设计,让你对这个强大的游戏引擎有一个宏观的认识。 搭建开发环境,告别繁琐: 许多初学者在搭建开发环境时就望而却步。我们将在书中提供最清晰、最详细的开发环境搭建指南,包括所需的软件安装、配置步骤,让你能够快速进入编码状态,而无需为环境问题烦恼。 掌握核心概念,打牢根基: 游戏开发并非空中楼阁,它建立在一系列核心概念之上。本书将详细讲解Cocos2d-x中的场景(Scene)、层(Layer)、精灵(Sprite)、动作(Action)、调度器(Scheduler)、事件处理(Event Handling)等基础但至关重要的概念。我们将通过大量生动形象的例子,让你深刻理解这些概念在实际游戏开发中的应用。 场景与层: 了解如何在不同的场景中组织游戏元素,如何利用层来管理游戏界面的不同部分,就像在舞台上布置不同的布景和演员。 精灵与纹理: 学习如何加载和显示游戏中的图像资源,如何让静态的图片动起来,成为游戏世界中的角色、道具或障碍物。 动作系统: 掌握Cocos2d-x强大的动作系统,让你的游戏角色执行移动、旋转、缩放、淡入淡出等各种动画效果,赋予游戏生命力。 调度器: 理解如何使用调度器来定时执行任务,实现游戏中的循环逻辑,比如敌人的生成、计时的更新等。 事件处理: 学习如何响应玩家的输入,例如触摸、键盘操作,让你的游戏能够与玩家进行互动。 深入实践:从零开始构建你的第一个游戏 理论知识的学习固然重要,但真正掌握一项技能的关键在于实践。《精通Cocos2d-x游戏开发 基础卷》将紧密结合理论,通过一系列由浅入深的项目实战,让你将所学知识融会贯通。 第一个完整游戏: 我们将引导你从零开始,独立完成一个具有完整游戏流程的2D小游戏。这个过程不仅仅是代码的堆砌,更是你对游戏设计、逻辑实现、用户体验的一次全方位探索。你将体验到从构思到实现的完整成就感。 常用游戏元素实现: 除了完整游戏,书中还将通过一系列小案例,演示如何实现各种常见的游戏元素,例如: 玩家控制: 如何实现角色在屏幕上的自由移动,响应触摸或虚拟按键。 敌人 AI 基础: 学习如何让敌人按照简单的规则进行移动和攻击,为游戏增加挑战性。 碰撞检测: 掌握如何检测游戏中不同对象之间的碰撞,并根据碰撞结果触发相应的游戏逻辑,例如得分、生命值减少等。 UI 界面设计: 学习如何创建游戏中的按钮、文本标签、血条等用户界面元素,提升游戏的可玩性和信息反馈。 音效与背景音乐: 了解如何为你的游戏添加丰富的音效和动听的背景音乐,极大地增强游戏的沉浸感。 学习方法:高效掌握,事半功倍 我们不仅关注“教什么”,更关注“怎么学”。《精通Cocos2d-x游戏开发 基础卷》为你提供了高效的学习方法和学习建议: 代码示例与讲解: 书中的所有代码示例都经过精心设计,结构清晰,注释详尽,并配有详细的讲解,让你理解每一行代码的含义及其作用。 逐步完善与优化: 我们将展示如何从一个简单的功能开始,逐步为其添加更多的特性,并进行优化,让你理解软件开发的迭代过程。 常见问题解答与技巧分享: 在学习过程中,你可能会遇到各种问题。本书将为你梳理和解答开发过程中常见的疑难杂症,并分享一些实用的开发技巧,帮助你少走弯路。 思考与实践相结合: 我们鼓励你在阅读的同时,积极动手实践,修改代码,尝试添加新的功能,通过不断地思考和动手,才能真正将知识内化。 适用人群: 零基础编程爱好者: 对游戏开发充满兴趣,但没有任何编程基础的朋友。 有其他编程语言基础的开发者: 希望快速掌握Cocos2d-x,进入游戏开发领域的程序员。 学生与在职人员: 希望学习一门热门技术,为未来职业发展增添筹码的群体。 独立游戏开发者: 希望学习如何使用Cocos2d-x来制作自己的独立游戏。 《精通Cocos2d-x游戏开发 基础卷》将是你游戏开发之旅的第一块坚实的基石。它不仅仅是一本书,更是一位耐心的导师,一位忠实的伙伴。通过本书的学习,你将不再是旁观者,而是能够亲手创造精彩游戏世界的开发者。现在,就让我们一起,开启这段激动人心的游戏开发冒险吧!

用户评价

评分

这本书简直是游戏开发爱好者的“秘密武器”!它不是那种泛泛而谈的书,而是真正深入到Cocos2d-x的每一个角落,并且讲解得非常透彻。书的前半部分,围绕着游戏逻辑的构建,给出了很多精彩的思路和代码实现。比如,对于游戏状态的管理,书中提供了几种不同的设计模式,并分析了各自的优缺点,让我可以根据项目的实际情况选择最合适的方案。接着,对物理引擎的集成和使用进行了详细的阐述,无论是碰撞检测、刚体动力学,还是各种物理关节的应用,都提供了大量的实践案例,让我能够轻松地在游戏中实现逼真的物理交互效果。我印象最深刻的是,书中关于AI(人工智能)的初步探讨,虽然只是基础卷,但作者也给出了一些简单的AI算法的应用示例,比如寻路算法,这让我对未来开发更复杂的AI系统充满了信心。此外,对于游戏存档和读取功能的实现,书中也给出了详细的指导,让我可以轻松地为自己的游戏添加进度保存功能。

评分

这本书绝对是Cocos2d-x入门者的福音!从零开始,逐步引导,就像一位经验丰富的老师在身边手把手教学。第一部分的内容,详尽地介绍了Cocos2d-x的整体架构,包括场景、节点、调度器这些核心概念,解释得清晰易懂,不像有些技术书籍上来就堆砌代码,让人摸不着头脑。作者用了很多形象的比喻,比如把场景比作一幅画,节点就是画上的元素,这样抽象的概念立刻就鲜活起来了。接着,书中对精灵的创建、动画的制作进行了深入的讲解,光是学会怎么让一个角色动起来,就花了不少篇幅,但每一个细节都抠得很到位,比如帧动画的原理、间隔时间的调整对流畅度的影响,还有缓动动画的各种类型和使用场景,简直是将动画制作的奥秘一点点揭示出来。我尤其喜欢的是关于触摸事件的处理部分,从单点触摸到多点触控,再到手势识别,都给出了非常实用的示例代码,让我很快就能在自己的小项目中实现交互功能。而且,书中提供的代码示例都非常精炼,可以直接拿来用,稍加修改就能实现想要的效果,这对于急于动手实践的读者来说,简直太有帮助了。

评分

这本书是Cocos2d-x学习旅程中的一座坚实的里程碑!它为我打开了通往游戏开发世界的大门,并且让我能够以一种系统、高效的方式进行学习。书中对网络通信的初步讲解,虽然只是基础卷,但已经足够让我了解如何在Cocos2d-x中实现简单的网络功能,比如客户端与服务器的数据交互,这对于开发多人在线游戏至关重要。接着,关于多分辨率适配的策略,书中给出了非常详细的讲解和多种实现方案,这让我不再为不同屏幕尺寸的游戏显示问题而烦恼,能够确保我的游戏在各种设备上都能有良好的表现。不得不说,书中对一些进阶话题的“点到为止”的设计也非常明智,它在满足基础卷的学习需求的同时,也为读者留下了探索更广阔游戏开发世界的空间。书中提供的学习资源和社区支持信息,也让我感到非常安心,知道在遇到问题时,总能找到帮助。

评分

作为一名有一定编程基础,但对游戏开发却有些望而却步的读者,《精通Cocos2d-x游戏开发 基础卷》就像一座灯塔,为我指明了前进的方向。它不仅仅是关于Cocos2d-x的API罗列,而是真正教会我“如何思考”游戏开发。书中在讲解核心概念的同时,非常注重培养读者的设计思维,比如在讲解粒子系统时,不仅展示了如何创建和控制粒子,还强调了如何通过调整参数来模拟各种自然现象,比如火焰、雨滴、爆炸效果,这些都极大地拓展了我的视觉想象力。接着,关于音频系统的集成,书中也给出了非常实用的指导,包括背景音乐的播放、音效的处理、以及如何通过混音来创造更丰富的听觉体验。特别值得一提的是,书中对性能优化的一些基础技巧进行了介绍,比如如何避免不必要的绘制、如何合理使用缓存、如何优化资源加载等,这些都为我日后开发更大型、更流畅的游戏打下了坚实的基础。

评分

作为一名已经接触过一段时间编程,但对游戏开发领域相对陌生的开发者,我一直在寻找一本能够系统梳理Cocos2d-x知识体系的书籍,而《精通Cocos2d-x游戏开发 基础卷》正好满足了我的需求。作者在开篇就为我们构建了一个清晰的学习路径,从项目的创建、工程的配置,到Cocos2d-x的基本开发环境搭建,每一步都提供了详细的操作指导和注意事项,即使是初次接触Cocos2d-x的开发者也能顺利上手。书中对2D图形渲染原理的讲解,虽然没有深入到OpenGL ES的底层细节,但足以让读者理解Cocos2d-x是如何绘制出我们看到的画面的,以及如何利用渲染层级、混合模式等来创造丰富的视觉效果。接着,对UI系统,特别是各种常用控件(按钮、文本框、滑动条等)的使用方法进行了详尽的介绍,并给出了如何创建自定义UI组件的示例,这对于开发具有复杂用户界面的游戏至关重要。不得不提的是,书中对资源管理的策略也进行了探讨,如何有效地加载和卸载纹理、音频等资源,对于保证游戏的性能至关重要,这方面的讲解让我受益匪浅。

评分

纸张好,干货也有很多。值得好好一读,跟着操作有收获

评分

东西不错,发货也快,好卖家,赞一个!

评分

还没看看后再评。

评分

打折的时候买的,挺便宜的。多读书,少玩手机,尽量多的提高自我,希望自己能坚持下去!!

评分

没有视频教程,感觉有点鸡肋

评分

《Unity3D人工智能编程精粹》精选了Unity3D游戏开发中最关键、最实用的几项人工智能关键技术,以实例的方式由浅入深地讲解了深奥而强大的人工智能技术、设计原则以及编程实现方法,并且对书中的每一个案例都进行了详细注释,所有实例均运行测试通过。掌握了书中的技术,可以使游戏角色具有良好的智能,大大增强游戏的可玩性!

评分

印刷质量没毛病的正品

评分

很喜欢,印刷的还不错,应当是正版

评分

很好的cocos书 初学者买来看的

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有