书刊介绍
《Cocos2d-x 3.x游戏开发实战》内容简介
《Cocos2d-x 3.x游戏开发实战》是一本介绍Cocos2d-x游戏引擎的实用图书,全面介绍了最新的Cocos2d-x 3.2游戏引擎各方面的知识。
《Cocos2d-x 3.x游戏开发实战》从内容层次上可分为四个部分。第一部分介绍了游戏开发的基础知识、游戏引擎概念、Cocos2d-x的下载与安装,以及跨平台开发环境的搭建。第二部分介绍了Cocos2d-x中的核心类、动作、动画、3D特效、文字、字体、菜单、事件处理、UI控件、声音和数据存储等知识。第三部分介绍了Cocos2d-x的粒子系统、Tile地图、最新的物理引擎、内存管理机制。最后一部分详细介绍了Cocos2d-x官方提供的游戏开发工具Cocos Studio。
《Cocos2d-x 3.x游戏开发实战》针对每一个知识点都通过相应的程序给出了示范,并结合Cocos2d-x自带的cpp-tests实例进行讲解,在总结一些知识点之后还开发了一些小游戏,目的是让读者全面掌握Cocos2d-x的基础理论和基本使用。
作者:肖文吉作品目录
前言
本书特点
本书适合的读者
光盘说明
1.光盘内容
2.运行环境
衷心感谢
第1章:Cocos2d-x游戏引擎介绍
1.1、什么是游戏引擎
1.2、Cocos2d游戏引擎
1.2.1、Cocos2d的发展
1.2.2、Cocos2d的特点
1.2.3、Cocos2d的现在和未来
1.3、Cocos2d-x游戏引擎
1.3.1、选择Cocos2d-x的理由
1.3.2、Cocos2d-x的主要功能
1.3.3、Cocos2d-x
3.0版本的各语言优化
1.C++基础底层优化:新渲染器、新API、性能飞跃
2.增强Lua语言体验:开发快,测试快,上线快
3.新产品线Cocos2d-JS:HTML5+JSB高效整合
4.新增开发工具Cocos
Studio和Cocos
Code
IDE,打造完整工具链
1.3.4、Cocos2d-x
3.0的新特性
1.使用C++(C++11)的特性取代了Objective-C的特性
2.新的渲染器
3.优化了Labels
4.新的事件分发机制
5.物理引擎集成
1.3.5、使用了Cocos2d-x的游戏
1.4、本章小结
第2章:跨平台开发环境的搭建
2.1、搭建iOS下的开发环境
2.1.1、Cocos2d-x的安装与配置
2.1.2、Cocos2d-x项目结构和代码分析
1.项目结构
2.代码分析
2.2、搭建Windows下的开发环境
2.2.1、Cocos2d-x的安装与配置
2.2.2、Cocos2d-x工程目录和代码分析
2.3、搭建Android下的开发环境
2.3.1、软件的安装与环境变量配置
2.3.2、构建Cocos2d-x工程
2.3.3、在Eclipse下运行程序
2.4、本章小结
第3章:Cocos2d-x的核心类
3.1、节点类(Node)
3.1.1、Node类的成员变量
3.1.2、Node类的函数
1.处理子节点的函数
2.执行动作的函数
3.定时器事件的函数
4.其他函数
3.1.3、坐标系
1.UI坐标系
2.OpenGL坐标系
3.世界坐标系
4.节点坐标系
5.Vec2和Point
6.锚点
示例:测试锚点——AnchorPointTest
示例:测试Node类的常用函数——NodeTest
3.2、场景类(Scene)
3.2.1、TransitionScene场景切换
3.2.2、Cocos2d-x支持的场景过渡效果
3.3、层类(Layer)
3.3.1、Layer类的常用成员变量
3.3.2、Layer类的常用函数
3.4、导演类(Director)
3.4.1、Director导演类常用的成员变量
3.4.2、Director导演类常用的函数
3.4.3、Director导演类在游戏初始化时的使用分析
3.5、精灵类(Sprite)
3.5.1、纹理的相关概念
1.纹理(Texture)
2.纹理图集(TextureAtlas)
3.纹理相关的类
3.5.2、Sprite精灵类的常用成员变量
3.5.3、Sprite精灵类的常用函数
示例:测试Sprite类的常用函数——SpriteTest
3.5.4、SpriteFrame精灵帧类
3.5.5、SpriteFrameCache精灵帧缓存类
3.5.6、SpriteBatchNode精灵表单类
示例:测试SpriteFrameCacheTest精灵帧缓存类——SpriteFrameCacheTest
3.5.7、制作精灵表单
1.安装Zwoptex工具
2.制作精灵表单
示例:测试自己制作的精灵表单——SpriteSheetTest
3.6、Cocos2d-x
3.0新的数据结构
3.6.1、cocos2d::Vector
示例:测试cocos2d::Vector类的常用函数——VectorTest
3.6.2、cocos2d::Map
示例:测试cocos2d::Map类的常用函数——MapTest
3.6.3、cocos2d::Value
示例:测试cocos2d::Value类的常用函数——ValueTest
3.7、本章小结
第4章:Cocos2d-x的动作和动画
4.1、动作基类Action
4.1.1、Action类的常用成员变量
4.1.2、Action类的常用函数
4.1.3、Action类的子类
1.瞬时动作(ActionInstant)
2.延时动作(ActionInterval)
4.2、示例:测试基本动作——ActionBasicTest
4.2.1、显示、隐藏、闪烁动作
4.2.2、淡入淡出动作
4.2.3、色彩值渐变动作
4.2.4、移动动作
4.2.5、跳跃动作
4.2.6、缩放动作
4.2.7、旋转动作
4.3、示例:测试组合动作——ActionCombinationTest
4.4、示例:测试可变速度动作——ActionEaseTest
4.4.1、EaseIn、EaseOut和EaseInOut
4.4.2、EaseSineIn、EaseSineOut和EaseSineInOut
4.4.3、EaseExponentialIn、EaseExponentialOut和EaseExponentialInOut
4.4.4、EaseBounceIn、EaseBounceOut和EaseBounceInOut
4.4.5、EaseElasticIn、EaseElasticOut和EaseElasticInOut
4.5、示例:测试速度动作——ActionSpeedTest
4.6、示例:测试跟随动作——ActionFollowTest
4.7、示例:测试延迟动作——ActionDelayTest
4.8、示例:测试函数回调动作——ActionCallFuncTest
4.9、Cocos2d-x中与动画相关的类
4.10、示例:英雄舞剑动画
4.11、示例:僵尸走路动画
4.12、示例:使用动画帧缓冲实现动画
4.13、示例:制作精灵表单实现动画
4.14、Cocos2d-x新增的3D特性
fbv-conv的用法
4.15、示例:Sprite3D创建3D精灵
4.16、示例:Animation3D创建3D动画
4.17、本章小结
第5章:Cocos2d-x的文本渲染系统和菜单
5.1、文本渲染相关的类
5.2、TTF类型标签LabelTTF
示例:测试LabelTTF类——LabelTTFTest
5.3、BMFont标签类LabelBMFont
1.下载Hiero工具
2.创建字体图集
示例:测试LabelBMFont类——LabelBMFontTest
5.4、Atlas标签类LabelAtlas
示例:测试LabelAtlas类——LabelAtlasTest
5.5、Cocos2d-x新增的标签类Label
示例:测试Label类——LabelTest
5.6、菜单类Menu
5.7、菜单项MenuItem和常用子类
5.7.1、标签菜单项(MenuItemLabel)
5.7.2、自定义字体菜单项(MenuItemAtlasFont)
5.7.3、字体菜单项(MenuItemFont)
5.7.4、精灵菜单项(MenuItemSprite)
5.7.5、图片菜单项(MenuItemImage)
5.7.6、触发器菜单项(MenuItemToggle)
示例:测试菜单——MenuTest
5.8、本章小结
第6章:Cocos2d-x的事件处理机制
6.1、事件处理机制
6.1.1、接收数据(Touch)
6.1.2、分发事件(EventDispatcher)
6.1.3、处理响应(EventListener)
6.2、触摸事件
6.2.1、单点触摸事件(EventListenerTouchOneByOne)
示例:场景优先事件监听——TouchOneByOneTest
示例:滑动屏幕选择菜单——TouchOneByOneTest
示例:固定值优先事件监听——TouchPriorityTest
6.2.2、多点触摸事件(EventListenerTouchAllAtOnce)
示例:多点触摸(缩放功能的实现)——TouchAllAtOnceTest
6.3、加速度计事件(EventListenerAcceleration)
示例:滚动的小球——AccelerometerTest
6.4、按键事件(EventListenerKeyboard)
6.5、鼠标事件(EventListenerMouse)
6.6、自定义事件(EventListenerCustom)
示例:自定义事件处理——CustomTest
6.7、本章小结
第7章:Cocos2d-x的常用控件
7.1、Cocos2d-x的控件
7.1.1、按钮类ControlButton
示例:测试按钮——ControlButtonTest
7.1.2、拖动滑块类ControlSlider
示例:测试拖动滑块——ControlSliderTest
7.1.3、开关按钮类ControlSwitch
示例:测试开关按钮——ControlSwitchTest
7.2、Cocos
Studio中的UI控件
7.2.1、Widget(所有UI控件的父类)
7.2.2、Button(按钮)
示例:测试UI控件——UITest
7.2.3、Text(文本)
7.2.4、TextField(文本框)
7.2.5、CheckBox(复选框)
7.2.6、ImageView(图片)
7.2.7、LoadingBar(进度条)
7.2.8、Slider(滑动条)
7.2.9、Layout(布局容器)
7.2.10、ScrollView(滚动层容器)
7.2.11、ListView(列表层容器)
7.2.12、PageView(分页层容器)
7.3、本章小结
第8章:Cocos2d-x的声音系统和数据存储
8.1、声音系统
8.1.1、背景音乐和声音特效
8.1.2、CocosDenshion库
8.1.3、SimpleAudioEngine类
示例:背景音乐和音效控制——SimpleAudioEngineTest
8.2、数据存储
8.2.1、UserDefault类
示例:用户数据存储测试——UserDefaultTest
8.3、本章小结
第9章:射击类游戏:疯狂打飞机
9.1、游戏简介
9.2、添加游戏菜单
9.3、预加载游戏资源
9.4、玩家飞机飞行效果
9.5、玩家飞机Touch实现
9.6、背景滚动效果
9.7、添加敌机
9.8、玩家飞机发射子弹
9.9、背景音乐和积分统计
9.10、游戏大Boss
9.11、本章小结
第10章:粒子系统
10.1、粒子系统相关的类
10.1.1、ParticleSystem类
1.ParticleSystem类的常用属性
2.ParticleSystem类的常用函数
10.1.2、ParticleSystemQuad类
10.1.3、ParticleBatchNode类
10.2、粒子系统的使用
示例:使用内置的粒子系统——ParticleEffectTest
示例:自己定制粒子系统——MyParticleTest
10.3、使用Particle
Designer工具制作粒子
示例:使用plist文件创建粒子系统——ParticleDesignerTest
示例:休闲类游戏——疯狂打地鼠
1.游戏简介
2.游戏适用多分辨率
3.放置地鼠
4.地鼠钻出
5.敲打地鼠
6.分数统计
7.增加计时器
8.设计关卡
10.4、本章小结
第11章:瓦片地图
11.1、下载和安装Tiled地图编辑器
11.2、使用Tiled绘制地图
11.3、Tiled地图相关的类
11.3.1、TMXTiledMap类
11.3.2、TMXLayer类
11.3.3、TMXObjectGroup类
示例:使用Tiled地图——TileMapTest
11.4、本章小结
第12章:真实手游:萌仙
12.1、设计地图场景
12.2、载入地图
12.3、地图的移动
12.4、遮挡效果和设置障碍物
12.5、寻路算法
12.6、随机出现怪物
12.7、玩家和怪物进行战斗
12.8、本章小结
第13章:Cocos2d-x的物理引擎
13.1、物理引擎概述
13.2、Box2D的核心概念
13.3、Box2D中常用的属性和函数
1.b2World(世界)
2.b2Body(刚体,又称为物体)
3.b2BodyDef(物体定义)
4.b2Shape(形状)
5.b2FixtureDef(夹具定义)
13.4、Box2D示例项目分析
13.5、Cocos2d-x和Box2D的整合开发
1.坐标轴的映射
2.坐标单位的映射
13.6、Box2D开发步骤
13.7、Cocos2d-x
3.0中的物理引擎
13.7.1、PhysicsWorld类
13.7.2、PhysicsBody类
13.7.3、PhysicsShape类
13.8、使用3.0的物理引擎开发项目
示例:测试3.0新增的物理引擎——PhysicsTest
13.9、益智类游戏:愤怒的小鸟
13.9.1、开始前的准备工作
13.9.2、进度条制作
13.9.3、游戏中的粒子效果
13.9.4、游戏选关操作
13.9.5、设计关卡数据
13.9.6、设计精灵类
13.9.7、游戏主界面
13.9.8、弹弓发射小鸟
13.9.9、物理引擎
13.9.10、物理碰撞
13.9.11、游戏过关设计
13.10、本章小结
第14章:Cocos2d-x的内存管理
14.1、内存管理概述
1.内存溢出
2.内存泄露
14.2、手动内存管理
14.2.1、对象的引用计数
14.2.2、对象所属权
14.2.3、函数中的保留和释放
14.2.4、使用自动释放池
14.2.5、手动内存管理总结
14.3、自动释放池
14.3.1、Ref的引用计数
14.3.2、AutoreleasePool自动释放池
14.3.3、PoolManager自动释放池管理器
14.3.4、create函数
14.4、本章小结
第15章:塔防类游戏:保卫公主
15.1、设计关卡地图场景
15.2、游戏菜单
15.3、选择关卡
1.data文件中保存的是第1关的具体数据信息。
2.data和3.data与1.data文件类似,此处不再赘述。
15.4、加载关卡数据
15.5、准备进入游戏
15.6、随机出现怪物
15.7、建造炮塔
15.8、旋转炮塔
15.9、检测碰撞
15.10、游戏结束
15.11、本章小结
第16章:Cocos
Studio
16.1、Cocos
Studio概述
16.2、Cocos
Studio安装
16.3、Cocos
Studio特性
16.4、Cocos
Studio界面
16.4.1、界面布局
16.4.2、起始页面
16.4.3、渲染面板
16.4.4、动画帧面板
16.4.5、属性面板
16.4.6、资源面板
16.4.7、控件面板
16.4.8、快捷工具面板
16.5、UI编辑器的使用
示例:测试UI编辑器——CocosStudioTest
16.5.1、按钮和文本框控件
16.5.2、进度条控件
16.5.3、滑动条控件
16.5.4、层容器控件
16.5.5、滚动层容器控件
16.5.6、分页层容器控件
16.5.7、UI动画制作
16.6、本章小结
附录
Cocos2d-x中常用的宏
1.与节点创建相关的宏
2.与平台相关的宏
3.与命名空间相关的宏
4.与节点属性相关的宏
5.与内存管理相关的宏
6.与日志相关的宏
7.与调试相关的宏
8.与转换相关的宏