描述
开 本: 16开纸 张: 轻型纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121245534
编辑推荐
**秀的跨平台游戏引擎,**的Cocos2d-x 3.2版本。
多平台、多IDE开发剖析,Windows、Mac、VS、Eclipse、Xcode。
重点、难点覆盖全面,网络编程、物理引擎、屏幕适配一一俱全。
多平台、多IDE开发剖析,Windows、Mac、VS、Eclipse、Xcode。
重点、难点覆盖全面,网络编程、物理引擎、屏幕适配一一俱全。
内容简介
Cocos2d-x 是一个跨平台的游戏开发引擎,可以运行在多个平台下,Android、iOS、Windows、Mac OS、Linux 等等。本书是基于全新的Cocos2d-x 3.x API 来编写的游戏引擎开发书籍,从最基本的环境搭建到最后的项目实战,内容全面并配有大量案例,无论是游戏初学者还是多年的游戏开发高手,都能从中受益。
全书最后以《疯狂地鼠》案例,全面系统地梳理Cocos2d-x 游戏开发的完整过程,Cocos2d-x 的大部分内容进行综合应用。
全书最后以《疯狂地鼠》案例,全面系统地梳理Cocos2d-x 游戏开发的完整过程,Cocos2d-x 的大部分内容进行综合应用。
目 录
第1章 开发环境搭建
1.1 下载Cocos2d-x
1.2 下载安装Python
1.3 下载安装Ant
1.4 下载安装JDK
1.5 下载安装ADT和NDK
1.6 在命令行创建多平台项目
1.7 在Windows平台下使用Eclipse创建项目
1.8 在Windows平台下使用Visual Studio创建项目
1.9 在Mac下配置Cocos2d-x开发环境
1.10 在Mac下使用Eclipse创建项目
1.11 在Mac下使用Xcode创建项目
第2章 编程起步
2.1 Hello World
2.1.1 命令行创建项目
2.1.2 项目结构
2.1.3 项目执行流程
2.1.4 场景类的实现
2.2 核心类 22
2.2.1 导演类Director
2.2.2 节点类Node
2.2.3 场景类Scene
2.2.4 图层类Layer
2.2.5 精灵类Sprite
2.3 坐标系统
2.3.1 坐标系
2.3.2 AnchorPoint锚点
2.4 代码风格
2.4.1 类的实例化和初始化
2.4.2 类的属性
2.4.3 选择器
2.5 内存管理
2.5.1 内存管理简介
2.5.2 AutoReleasePool
2.5.3 口诀和范式
2.5.4 内存管理宏
第3章 雷电项目
3.1 雷电项目概述
3.1.1 游戏资源
3.1.2 图片资源打包
3.1.3 项目结构
3.1.4 游戏运行界面
3.2 游戏启动界面
3.3 构建游戏玩家精灵
3.4 创建HUD图层
3.5 创建游戏主界面
3.6 玩家发射子弹
3.7 敌机自动移动
3.8 玩家子弹和敌机的碰撞检测
3.9 敌机发射子弹
3.10 玩家和敌机子弹碰撞检测
第4章 标签
4.1 字体标签的创建和使用
4.2 位图标签的创建和使用
4.3 字符图集标签的创建和使用
第5章 菜单
5.1 菜单类的层次关系
5.2 Menu菜单类
5.3 标签菜单项(MenuItemLabel)
5.4 精灵菜单项(MenuItemSprite)
5.5 图片菜单项(MenuItemImage)
5.6 开关菜单项(MenuItemToggle)
第6章 精灵及其相关类
6.1 精灵类Sprite
6.2 精灵帧类SpriteFrame和精灵帧缓存类SpriteFrameCache
6.3 精灵批量节点类SpriteBatchNode
6.4 精灵动画类Animation和动画缓存类AnimationCache
第7章 事件处理
7.1 单点触屏事件
7.2 多点触屏事件
7.3 鼠标事件
7.4 键盘事件
7.5 加速度事件
第8章 动作
8.1 Action和FiniteTimeAction的API
8.2 动作的工作原理
8.3 瞬时动作
8.3.1 Place
8.3.2 FlipX和FlipY
8.3.3 Show和Hide
8.3.4 CallFunc
8.3.5 RemoveSelf
8.4 持续性动作
8.4.1 位置变化的动作
8.4.2 属性变化的动作
8.4.3 视觉特性动作
8.4.4 控制动作
8.5 复合动作
8.5.1 Spawn
8.5.2 Sequence
8.6 变速动作
8.6.1 Speed
8.6.2 ActionEase
第9章 调度器
9.1 调度器的工作原理及其API
9.2 调度器的三种实现方式
9.2.1 默认调度器
9.2.2 自定义调度器
9.2.3 单次调度器
第10章 图形用户界面
10.1 文本
10.2 按钮
10.3 复选框
10.4 滑块
10.5 加载条
10.6 布局
10.7 滚动视图
10.8 列表视图
10.9 表格视图
10.10 编辑框
第11章 数据结构和常用类
11.1 基本类型封装类CCBool、CCFloat、CCDouble和CCInteger
11.2 字符串类CCString
11.3 数组CCArray
11.4 Set集合
11.5 字典Dictionary
11.6 基本类型封装类cocos2d::Value
11.7 向量类Vector
11.8 映射类Map
第12章 屏幕适配
12.1 FileUtils工具类
12.2 屏幕适配的相关接口
12.3 屏幕适配的解决方案
12.3.1 设计分辨率
12.3.2 适配策略
第13章 声音效果
13.1 音效引擎简介
13.2 音效引擎API
13.3 音效实例
第14章 网络编程
14.1 JSON数据解析
14.2 XML数据解析
14.3 curl
14.4 HttpClient
14.5 WebSocket
第15章 数据存储
15.1 UserDefault
15.2 SQLite数据库
第16章 TILED MAP(瓦片地图)
16.1 Tiled Map简介
16.2 Tiled Map Editor(瓦片地图编辑器)
16.3 Tiled Map API
16.4 Tiled Map 实例
第17章 粒子系统
17.1 粒子系统简介
17.2 粒子属性
17.3 粒子实例
17.4 粒子编辑器
第18章 物理引擎
18.1 Box2D 简介
18.2 Box2D的基本概念
18.3 Hello Box2D
18.4 搭建调试环境
18.5 Box2D的公共模块(Common)
18.6 Box2D碰撞模块(Collision)
18.7 Box2D动态模块(Dynamics)
18.7.1 夹具(Fixture)
18.7.2 物体(Bodies)
18.7.3 关节(Joints)
18.7.4 接触(Contacts)
18.7.5 世界(World)
18.8 Cocos2d-x 3.0 物理引擎API
第19章 常用工具和编辑器
19.1 字体编辑器
19.1.1 BMFont字体编辑器
19.1.2 Hiero字体编辑器
19.2 纹理打包编辑器
19.2.1 TexturePacker
19.2.2 Zwoptex
19.3 粒子编辑器
19.4 CocoStudio
第20章 项目实战――疯狂地鼠
20.1 项目模块介绍
20.1.1 游戏主菜单
20.1.2 游戏主界面
20.1.3 游戏结束界面
20.1.4 游戏暂停界面
20.2 核心类介绍
20.3 创建常量Constants
20.4 创建系统工具类Util
20.5 自定义按钮GameButton
20.6 构建游戏主菜单MainMenu
20.7 构建游戏主界面Game
20.8 构建地鼠精灵类Mole
20.9 在界面上布局地鼠
20.10 在指定时间间隔内显示地鼠
20.11 处理触屏事件
20.12 显示玩家积分和生命数
20.13 实现弹出对话框
20.14 实现暂停功能
20.15 实现GAME OVER
1.1 下载Cocos2d-x
1.2 下载安装Python
1.3 下载安装Ant
1.4 下载安装JDK
1.5 下载安装ADT和NDK
1.6 在命令行创建多平台项目
1.7 在Windows平台下使用Eclipse创建项目
1.8 在Windows平台下使用Visual Studio创建项目
1.9 在Mac下配置Cocos2d-x开发环境
1.10 在Mac下使用Eclipse创建项目
1.11 在Mac下使用Xcode创建项目
第2章 编程起步
2.1 Hello World
2.1.1 命令行创建项目
2.1.2 项目结构
2.1.3 项目执行流程
2.1.4 场景类的实现
2.2 核心类 22
2.2.1 导演类Director
2.2.2 节点类Node
2.2.3 场景类Scene
2.2.4 图层类Layer
2.2.5 精灵类Sprite
2.3 坐标系统
2.3.1 坐标系
2.3.2 AnchorPoint锚点
2.4 代码风格
2.4.1 类的实例化和初始化
2.4.2 类的属性
2.4.3 选择器
2.5 内存管理
2.5.1 内存管理简介
2.5.2 AutoReleasePool
2.5.3 口诀和范式
2.5.4 内存管理宏
第3章 雷电项目
3.1 雷电项目概述
3.1.1 游戏资源
3.1.2 图片资源打包
3.1.3 项目结构
3.1.4 游戏运行界面
3.2 游戏启动界面
3.3 构建游戏玩家精灵
3.4 创建HUD图层
3.5 创建游戏主界面
3.6 玩家发射子弹
3.7 敌机自动移动
3.8 玩家子弹和敌机的碰撞检测
3.9 敌机发射子弹
3.10 玩家和敌机子弹碰撞检测
第4章 标签
4.1 字体标签的创建和使用
4.2 位图标签的创建和使用
4.3 字符图集标签的创建和使用
第5章 菜单
5.1 菜单类的层次关系
5.2 Menu菜单类
5.3 标签菜单项(MenuItemLabel)
5.4 精灵菜单项(MenuItemSprite)
5.5 图片菜单项(MenuItemImage)
5.6 开关菜单项(MenuItemToggle)
第6章 精灵及其相关类
6.1 精灵类Sprite
6.2 精灵帧类SpriteFrame和精灵帧缓存类SpriteFrameCache
6.3 精灵批量节点类SpriteBatchNode
6.4 精灵动画类Animation和动画缓存类AnimationCache
第7章 事件处理
7.1 单点触屏事件
7.2 多点触屏事件
7.3 鼠标事件
7.4 键盘事件
7.5 加速度事件
第8章 动作
8.1 Action和FiniteTimeAction的API
8.2 动作的工作原理
8.3 瞬时动作
8.3.1 Place
8.3.2 FlipX和FlipY
8.3.3 Show和Hide
8.3.4 CallFunc
8.3.5 RemoveSelf
8.4 持续性动作
8.4.1 位置变化的动作
8.4.2 属性变化的动作
8.4.3 视觉特性动作
8.4.4 控制动作
8.5 复合动作
8.5.1 Spawn
8.5.2 Sequence
8.6 变速动作
8.6.1 Speed
8.6.2 ActionEase
第9章 调度器
9.1 调度器的工作原理及其API
9.2 调度器的三种实现方式
9.2.1 默认调度器
9.2.2 自定义调度器
9.2.3 单次调度器
第10章 图形用户界面
10.1 文本
10.2 按钮
10.3 复选框
10.4 滑块
10.5 加载条
10.6 布局
10.7 滚动视图
10.8 列表视图
10.9 表格视图
10.10 编辑框
第11章 数据结构和常用类
11.1 基本类型封装类CCBool、CCFloat、CCDouble和CCInteger
11.2 字符串类CCString
11.3 数组CCArray
11.4 Set集合
11.5 字典Dictionary
11.6 基本类型封装类cocos2d::Value
11.7 向量类Vector
11.8 映射类Map
第12章 屏幕适配
12.1 FileUtils工具类
12.2 屏幕适配的相关接口
12.3 屏幕适配的解决方案
12.3.1 设计分辨率
12.3.2 适配策略
第13章 声音效果
13.1 音效引擎简介
13.2 音效引擎API
13.3 音效实例
第14章 网络编程
14.1 JSON数据解析
14.2 XML数据解析
14.3 curl
14.4 HttpClient
14.5 WebSocket
第15章 数据存储
15.1 UserDefault
15.2 SQLite数据库
第16章 TILED MAP(瓦片地图)
16.1 Tiled Map简介
16.2 Tiled Map Editor(瓦片地图编辑器)
16.3 Tiled Map API
16.4 Tiled Map 实例
第17章 粒子系统
17.1 粒子系统简介
17.2 粒子属性
17.3 粒子实例
17.4 粒子编辑器
第18章 物理引擎
18.1 Box2D 简介
18.2 Box2D的基本概念
18.3 Hello Box2D
18.4 搭建调试环境
18.5 Box2D的公共模块(Common)
18.6 Box2D碰撞模块(Collision)
18.7 Box2D动态模块(Dynamics)
18.7.1 夹具(Fixture)
18.7.2 物体(Bodies)
18.7.3 关节(Joints)
18.7.4 接触(Contacts)
18.7.5 世界(World)
18.8 Cocos2d-x 3.0 物理引擎API
第19章 常用工具和编辑器
19.1 字体编辑器
19.1.1 BMFont字体编辑器
19.1.2 Hiero字体编辑器
19.2 纹理打包编辑器
19.2.1 TexturePacker
19.2.2 Zwoptex
19.3 粒子编辑器
19.4 CocoStudio
第20章 项目实战――疯狂地鼠
20.1 项目模块介绍
20.1.1 游戏主菜单
20.1.2 游戏主界面
20.1.3 游戏结束界面
20.1.4 游戏暂停界面
20.2 核心类介绍
20.3 创建常量Constants
20.4 创建系统工具类Util
20.5 自定义按钮GameButton
20.6 构建游戏主菜单MainMenu
20.7 构建游戏主界面Game
20.8 构建地鼠精灵类Mole
20.9 在界面上布局地鼠
20.10 在指定时间间隔内显示地鼠
20.11 处理触屏事件
20.12 显示玩家积分和生命数
20.13 实现弹出对话框
20.14 实现暂停功能
20.15 实现GAME OVER
在线试读
前言
移动互联网
移动互联网,就是将移动通信和互联网二者结合起来,成为一体。在我国的互联网发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展。数据显示,截止2013年底,中国手机网民超过5亿,占比达81%。随着移动终端价格的下降以及WiFi的广泛铺设,移动网民呈现爆发式趋势。
在如此规模的商业价值里面,每个人都想分一杯羹,下面一起来看看留给个人开发者的机会有多少。移动互联网,可以分为三大模块:互联网、移动运营商和终端设备。从这三方面来看,互联网经过多年发展格局基本成型,移动运营商虽然是一块大肥肉,但是其特殊的地位根本不可撼动,剩下的就是终端设备了。终端设备又可以分为:硬件厂商、软件操作系统和App软件。对于个人开发者来讲,硬件厂商的机会很小,厂商中有大牌的苹果、三星、LG等,个人根本无法与其抗衡。目前,操作系统的局面呈现三足鼎立之势,Google的Android、苹果的iOS和微软的Windows Phone,个人开发者要想做一个操作系统出来几乎不太可能,那剩下的就是App软件了。的确,随着移动互联网的兴起,软件的个人英雄主义又回归了,个人开发者可以在数周或一周内开发出一款App,并一举成名,这样的案例比比皆是。
App大潮
据了解,截止到2014年3月,App Store的下载次数已经突破 650 亿次,达到了又一个里程碑。苹果同时还宣布,目前 App Store 已经在 155 个国家和地区上线,其应用总数超过100万个,其中超过 50 万个专门为 iPad 打造。
Google Play的下载量也逐渐增加,2014年第二季度,Google Play下载量超出了App Store 60%。
通过这些数字可以看出,软件商店平台大大降低了开发者发布软件的成本,各路App开发者蜂拥而上,其中一些App的收益也是相当的可观,免费版《愤怒的小鸟》月广告收入100万美元,《捕鱼达人2》日收入100万美元。个人开发者开发的《找你妹》,其App Store 月收入500万美元,这还不包括Android的收入。
手游
在众多的App中,收益最多的还是游戏,在成百上千的App中,我们真正经常使用的应用App不超过10款,微信、QQ、手机淘宝等。而游戏会层出不穷,你的手机里可能有十几款甚至几十款好玩的游戏,而且这些游戏会不停地更换。
游戏经历了桌面游戏、网络游戏、网页游戏和手游,可以说手游开发时期是离开发者赚钱最近的一个时期,只要把握住这个时机,成功就只有一步之遥。
资本的过度介入,导致2013年的手游市场呈现跳跃式增长。在资本的助推下,手游产品属性日益金融化。相应的,追求短、平、快的投机心理开始盛行,“山寨”成了“一夜暴富”的捷径。
一旦某款手游产品反响火爆,立即就会引来争相效仿者,这直接催生了手游的版权乱象。由于在法律界定上的不完善、手游产品存活率低导致不少维权找不到被诉人等现状,手游行业的版权保护异常蹒跚。
Cocos2d-x
谈到Cocos2d-x,我们就不得不谈一下它的前身Cocos2d-iPhone和Cocos2d的Python版本。Cocos2d是由一个阿根廷的开发者Ricardo于2008年2月发布的,后来随着iPhone游戏的流行,2008年6月宣布与iPhone平台进行接轨,并在当月就公布了用Objective-C编写的Cocos2D for iPhone 0.1版,它与Python版的Cocos2D拥有相同的设计思路。
Cocos2d-x,为什么是“x”。“x”,标志着该项目是由C++编写的;“x”,也意味着交叉。这个开源项目的目标是让用户创建跨平台的代码。Cocos2d-x是跨平台的,具体各个平台的支持如下:iOS、Android、BlackBerry、HTML 5和Window Phone等。
Cocos2d-x的主要功能如下。
流程控制(Flow Control):非常容易地管理不同场景(Scenes)之间的流程控制。
精灵(Sprites):快速而方便的精灵。
动作(Actions):告诉精灵们该做什么。可组合动作如移动(Move)、旋转(Rotate)和缩放(Scale)等。
特效(Effects):特效包括波浪(Waves)、旋转(Twirl)和透镜(Lens)等。
平面地图(Tiled Maps):支持包括矩形和六边形平面地图。
转换(Transitions):从一个场景移动到另外一个不同风格的场景。
菜单(Menus):创建内部菜单。
文本渲染(Text Rendering):支持标签和HTML标签动作。
基于OpenGL:支持硬件加速。
脚本语言:支持Lua、JavaScript语言。
本书内容
本书是基于全新的Cocos2d-x 3.x API来编写的游戏引擎开发书籍,从最基本的环境搭建到最后的项目实战,内容全面并配有大量案例,无论是游戏开发初学者,还是多年的游戏开发高手,都能从中受益。
本书分为20个章节,详细内容如下。
第1章 开发环境搭建。讲述的内容有如何下载Cocos2d-x,如何安装Python、Ant和JDK,如何下载安装Android开发环境ADT和NDK,如何使用命令cocos new来创建新项目,如何在Windows下面使用Visual Studio和Eclipse来开发Cocos2d-x项目,如何在Mac OS平台下使用Eclipse和Xcode来开发Cocos2d-x项目。
第2章 编程起步。详细讲述了Cocos2d-x的第一个项目Hello World的项目架构,以及核心类Director、Node、Scene、Layer、Sprite等常用API,还有坐标系统的讲述,相对坐标、绝对坐标及其转换,位置和锚点的设置,以及代码的风格。由于Cocos2d-x是由Cocos2d-iphone移植而来,因此带有很多Objective-C的编程风格。另外,本章的一个难点就是内存管理的讲解。
第3章 雷电项目。本章将通过这个项目来对Cocos2d-x开发的全貌做一个整体讲述,内容包含项目的概述、游戏启动画面的设计、构建玩家精灵、创建HUD图层、创建游戏主界面、玩家发射子弹、敌机自动移动、碰撞检测和Game Over等。
第4章 标签。本章采用最新的Cocos2d-x 3.x的API,讲述了字体标签、位图标签和字符图集标签的用法。
第5章 菜单。本章对菜单类Menu和菜单项MenuItemLabel、MenuItemSprite、MenuItemImage及MenuItemToggle等都做了详尽的讲述。
第6章 精灵及其相关类。本章首先对精灵类Sprite的用法做了讲述,然后讲述了和精灵相关的一些类,精灵帧SpriteFrame和精灵帧缓存SpriteFrameCache、精灵批量节点类SpriteBatchNode和精灵动画类Animation、动画缓存类AnimaltionCache。
第7章 事件处理。Cocos2d-x 3.x采用全新的事件处理方式,基于监听器Listener的事件处理方式,本章讲述的事件处理有单点触屏事件、多点触屏事件、鼠标事件、键盘事件和重力加速度事件。
第8章 动作。本章首先讲述了动作和基本父类Action和FiniteTimeAction的API,然后讲述了动作的工作原理,后面的具体动作包括:瞬时动作、持续性动作、复合动作和变速动作。
第9章 调度器。首先讲述了调度器的工作原理及其API,然后讲述了调度器的三种调用方法。
第10章 图形用户界面。讲述的视图组件有:文本Text、按钮Button、复选框CheckBox、滑块Slider、加载条LoadingBar、布局Layout、滚动视图ScrollView、列表视图ListView、表格视图TableView和编辑框EditText。
第11章 数据结构和常用类。在游戏开发中,经常会使用一些集合数据结构来管理游戏对象,本章就详细讲述了这些数据结构的用法,内容包括:基本类型封装类Bool、Float、Double、Integer、字符串类String、数组Array、Set集合、字典Dictionary、基本类型封装类cocos2d::Value、向量类Vector和映射类Map。
第12章 屏幕适配。移动设备种类繁多,各种设备屏幕大小不一,因此屏幕适配就变得极为关键和重要。本章将详细讲述FileUtils工具类、屏幕适配的相关接口和屏幕适配解决方案。
第13章 声音效果。一款好的游戏怎能缺少优美的音效,本章将讲述音效的用法,首先是音效引擎简介,然后是音效引擎API,最后通过实例讲述音效的用法。
第14章 网络编程。随着游戏的社交化的演变,几乎所有的游戏都要和服务器打交道,这就需要了解网络编程的相关知识。本章内容包括:JSON数据解析、XML数据解析、curl、HttpClient和WebSocket。
第15章 数据存储。游戏的本地数据存储也很普遍,例如,游戏级别、配置、玩家积分都需要保存。本章讲述两种数据存储方法:UserDefault和SQLite数据库。
第16章 Tiled Map(瓦片地图)。瓦片地图在游戏开发中使用非常广泛,它可以极大地提高游戏场景中图片的加载效率,本章内容包括:Tiled Map 简介、Tiled Map Editor编辑器、Tiled Map API和Tiled Map 实例。
第17章 粒子系统。子游戏中使用粒子系统可以做出非常炫酷的游戏特性,但是,由于粒子系统的属性繁多且不易掌握,而且通过编程的方式实现非常麻烦,为此我们专门讲述了粒子系统的属性和粒子编辑器的用法。
第18章 物理引擎。使用物理引擎可以模拟现实生活中的物理特性,使游戏更能接近真实场景。本章讲述了流行的物理引擎Box2D的用法和Cocos2d-x中的集成用法。
……
移动互联网
移动互联网,就是将移动通信和互联网二者结合起来,成为一体。在我国的互联网发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展。数据显示,截止2013年底,中国手机网民超过5亿,占比达81%。随着移动终端价格的下降以及WiFi的广泛铺设,移动网民呈现爆发式趋势。
在如此规模的商业价值里面,每个人都想分一杯羹,下面一起来看看留给个人开发者的机会有多少。移动互联网,可以分为三大模块:互联网、移动运营商和终端设备。从这三方面来看,互联网经过多年发展格局基本成型,移动运营商虽然是一块大肥肉,但是其特殊的地位根本不可撼动,剩下的就是终端设备了。终端设备又可以分为:硬件厂商、软件操作系统和App软件。对于个人开发者来讲,硬件厂商的机会很小,厂商中有大牌的苹果、三星、LG等,个人根本无法与其抗衡。目前,操作系统的局面呈现三足鼎立之势,Google的Android、苹果的iOS和微软的Windows Phone,个人开发者要想做一个操作系统出来几乎不太可能,那剩下的就是App软件了。的确,随着移动互联网的兴起,软件的个人英雄主义又回归了,个人开发者可以在数周或一周内开发出一款App,并一举成名,这样的案例比比皆是。
App大潮
据了解,截止到2014年3月,App Store的下载次数已经突破 650 亿次,达到了又一个里程碑。苹果同时还宣布,目前 App Store 已经在 155 个国家和地区上线,其应用总数超过100万个,其中超过 50 万个专门为 iPad 打造。
Google Play的下载量也逐渐增加,2014年第二季度,Google Play下载量超出了App Store 60%。
通过这些数字可以看出,软件商店平台大大降低了开发者发布软件的成本,各路App开发者蜂拥而上,其中一些App的收益也是相当的可观,免费版《愤怒的小鸟》月广告收入100万美元,《捕鱼达人2》日收入100万美元。个人开发者开发的《找你妹》,其App Store 月收入500万美元,这还不包括Android的收入。
手游
在众多的App中,收益最多的还是游戏,在成百上千的App中,我们真正经常使用的应用App不超过10款,微信、QQ、手机淘宝等。而游戏会层出不穷,你的手机里可能有十几款甚至几十款好玩的游戏,而且这些游戏会不停地更换。
游戏经历了桌面游戏、网络游戏、网页游戏和手游,可以说手游开发时期是离开发者赚钱最近的一个时期,只要把握住这个时机,成功就只有一步之遥。
资本的过度介入,导致2013年的手游市场呈现跳跃式增长。在资本的助推下,手游产品属性日益金融化。相应的,追求短、平、快的投机心理开始盛行,“山寨”成了“一夜暴富”的捷径。
一旦某款手游产品反响火爆,立即就会引来争相效仿者,这直接催生了手游的版权乱象。由于在法律界定上的不完善、手游产品存活率低导致不少维权找不到被诉人等现状,手游行业的版权保护异常蹒跚。
Cocos2d-x
谈到Cocos2d-x,我们就不得不谈一下它的前身Cocos2d-iPhone和Cocos2d的Python版本。Cocos2d是由一个阿根廷的开发者Ricardo于2008年2月发布的,后来随着iPhone游戏的流行,2008年6月宣布与iPhone平台进行接轨,并在当月就公布了用Objective-C编写的Cocos2D for iPhone 0.1版,它与Python版的Cocos2D拥有相同的设计思路。
Cocos2d-x,为什么是“x”。“x”,标志着该项目是由C++编写的;“x”,也意味着交叉。这个开源项目的目标是让用户创建跨平台的代码。Cocos2d-x是跨平台的,具体各个平台的支持如下:iOS、Android、BlackBerry、HTML 5和Window Phone等。
Cocos2d-x的主要功能如下。
流程控制(Flow Control):非常容易地管理不同场景(Scenes)之间的流程控制。
精灵(Sprites):快速而方便的精灵。
动作(Actions):告诉精灵们该做什么。可组合动作如移动(Move)、旋转(Rotate)和缩放(Scale)等。
特效(Effects):特效包括波浪(Waves)、旋转(Twirl)和透镜(Lens)等。
平面地图(Tiled Maps):支持包括矩形和六边形平面地图。
转换(Transitions):从一个场景移动到另外一个不同风格的场景。
菜单(Menus):创建内部菜单。
文本渲染(Text Rendering):支持标签和HTML标签动作。
基于OpenGL:支持硬件加速。
脚本语言:支持Lua、JavaScript语言。
本书内容
本书是基于全新的Cocos2d-x 3.x API来编写的游戏引擎开发书籍,从最基本的环境搭建到最后的项目实战,内容全面并配有大量案例,无论是游戏开发初学者,还是多年的游戏开发高手,都能从中受益。
本书分为20个章节,详细内容如下。
第1章 开发环境搭建。讲述的内容有如何下载Cocos2d-x,如何安装Python、Ant和JDK,如何下载安装Android开发环境ADT和NDK,如何使用命令cocos new来创建新项目,如何在Windows下面使用Visual Studio和Eclipse来开发Cocos2d-x项目,如何在Mac OS平台下使用Eclipse和Xcode来开发Cocos2d-x项目。
第2章 编程起步。详细讲述了Cocos2d-x的第一个项目Hello World的项目架构,以及核心类Director、Node、Scene、Layer、Sprite等常用API,还有坐标系统的讲述,相对坐标、绝对坐标及其转换,位置和锚点的设置,以及代码的风格。由于Cocos2d-x是由Cocos2d-iphone移植而来,因此带有很多Objective-C的编程风格。另外,本章的一个难点就是内存管理的讲解。
第3章 雷电项目。本章将通过这个项目来对Cocos2d-x开发的全貌做一个整体讲述,内容包含项目的概述、游戏启动画面的设计、构建玩家精灵、创建HUD图层、创建游戏主界面、玩家发射子弹、敌机自动移动、碰撞检测和Game Over等。
第4章 标签。本章采用最新的Cocos2d-x 3.x的API,讲述了字体标签、位图标签和字符图集标签的用法。
第5章 菜单。本章对菜单类Menu和菜单项MenuItemLabel、MenuItemSprite、MenuItemImage及MenuItemToggle等都做了详尽的讲述。
第6章 精灵及其相关类。本章首先对精灵类Sprite的用法做了讲述,然后讲述了和精灵相关的一些类,精灵帧SpriteFrame和精灵帧缓存SpriteFrameCache、精灵批量节点类SpriteBatchNode和精灵动画类Animation、动画缓存类AnimaltionCache。
第7章 事件处理。Cocos2d-x 3.x采用全新的事件处理方式,基于监听器Listener的事件处理方式,本章讲述的事件处理有单点触屏事件、多点触屏事件、鼠标事件、键盘事件和重力加速度事件。
第8章 动作。本章首先讲述了动作和基本父类Action和FiniteTimeAction的API,然后讲述了动作的工作原理,后面的具体动作包括:瞬时动作、持续性动作、复合动作和变速动作。
第9章 调度器。首先讲述了调度器的工作原理及其API,然后讲述了调度器的三种调用方法。
第10章 图形用户界面。讲述的视图组件有:文本Text、按钮Button、复选框CheckBox、滑块Slider、加载条LoadingBar、布局Layout、滚动视图ScrollView、列表视图ListView、表格视图TableView和编辑框EditText。
第11章 数据结构和常用类。在游戏开发中,经常会使用一些集合数据结构来管理游戏对象,本章就详细讲述了这些数据结构的用法,内容包括:基本类型封装类Bool、Float、Double、Integer、字符串类String、数组Array、Set集合、字典Dictionary、基本类型封装类cocos2d::Value、向量类Vector和映射类Map。
第12章 屏幕适配。移动设备种类繁多,各种设备屏幕大小不一,因此屏幕适配就变得极为关键和重要。本章将详细讲述FileUtils工具类、屏幕适配的相关接口和屏幕适配解决方案。
第13章 声音效果。一款好的游戏怎能缺少优美的音效,本章将讲述音效的用法,首先是音效引擎简介,然后是音效引擎API,最后通过实例讲述音效的用法。
第14章 网络编程。随着游戏的社交化的演变,几乎所有的游戏都要和服务器打交道,这就需要了解网络编程的相关知识。本章内容包括:JSON数据解析、XML数据解析、curl、HttpClient和WebSocket。
第15章 数据存储。游戏的本地数据存储也很普遍,例如,游戏级别、配置、玩家积分都需要保存。本章讲述两种数据存储方法:UserDefault和SQLite数据库。
第16章 Tiled Map(瓦片地图)。瓦片地图在游戏开发中使用非常广泛,它可以极大地提高游戏场景中图片的加载效率,本章内容包括:Tiled Map 简介、Tiled Map Editor编辑器、Tiled Map API和Tiled Map 实例。
第17章 粒子系统。子游戏中使用粒子系统可以做出非常炫酷的游戏特性,但是,由于粒子系统的属性繁多且不易掌握,而且通过编程的方式实现非常麻烦,为此我们专门讲述了粒子系统的属性和粒子编辑器的用法。
第18章 物理引擎。使用物理引擎可以模拟现实生活中的物理特性,使游戏更能接近真实场景。本章讲述了流行的物理引擎Box2D的用法和Cocos2d-x中的集成用法。
……
评论
还没有评论。