编辑推荐
适读人群 :零基础游戏开发人员、游戏开发爱好者、在校学生 64个游戏实例、5个完整的游戏项目案例、赠送232分钟高清配套教学视频
详解Cocos2d-x从项目创建、配置到开发的全过程,全面展示各组件的使用方法
涵盖Cocos2d-x游戏开发的基础知识、技能提升、设计模式应用及游戏案例实战
不涉及过于高深的理论,而是通过实例展示如何做,很适合零基础读者快速入门
通过64个实例与5个案例,详解Cocos2d-x中各个模块的用法和常见游戏的实现思路
详解从零基础到独立开发游戏的整个过程,并探讨游戏开发中设计模式的应用
实现5个完整的游戏项目案例,让读者体验实际的游戏开发过程,提高实战水平
64个游戏实例
音效实战:钢琴
交互实战:游戏摇杆
动作实战:人物行走
定时器实战:回合制游戏战斗
Box2D实战:在平面上打台球
骨骼动画实战:运动的火柴人
……
5个完整的游戏项目案例
2048游戏实战
连连看游戏实战
Popstar游戏实战
纵版射击游戏实战
纸牌游戏实战
海报
内容简介
本书以实例为基础,通过简单的例子来介绍Cocos2d-x中各个模块的使用方法和一些常见游戏的实现思路。书中详细介绍从零基础到能够独立开发简单游戏的整个过程,同时探讨游戏开发中设计模式的应用。另外,作者为书中的重点内容录制了一些教学视频,以便于读者更加高效、直观地学习。本书共19章,分为4篇。第1篇为开发前的环境搭建,主要介绍Cocos2d-x的背景知识及开发环境的搭建。第2篇为Cocos2d-x基础铺垫,主要介绍Cocos2d-x中的基本UI、对用户操作的响应、地图系统、物理引擎、粒子系统及存储和网络等方面的知识。第3篇为Cocos2d-x技能提升,属于进阶知识,主要介绍如何使用额外的控件、如何使用CocosStudio及设计模式的相关内容。第4篇为Cocos2d-x游戏开发案例实战,主要通过几个游戏案例介绍如何利用Cocos2d-x开发游戏应用。
本书内容全面,实用性强,尤其适合在校学生或零基础游戏开发的爱好者阅读。本书基本不涉及过于高深的理论,书中主要是通过实例来展示怎么做,非常适合基础薄弱的读者入门。
本书精华内容
初识Cocos2d-x
Cocos2d-x基础知识学习
在屏幕上显示内容
实现交互功能
让人物动起来
定时器的原理及使用
地图系统的使用
Cocos2d-x中的粒子系统
在Cocos2d-x中使用物理引擎
存储和网络
高级UI控件
学习使用CocosStudio
Cocos2d-x中的设计模式
2048游戏实战
连连看游戏实战
Popstar游戏实战
纵版射击游戏实战
纸牌游戏实战
最后的一点补充
作者简介
欧桐桐,毕业于大连海事大学信息管理与信息系统专业。熟悉各种主流的游戏开发框架,尤其热爱Cocos2d-x。曾经针对PC网络游戏开发了多款用于竞技的模拟器(如召唤兽打书模拟器、人物加点模拟器等),深受广大网络游戏玩家的喜爱。作为一名资深的网络游戏玩家,善于利用自己的开发经验发现网络游戏脚本背后的秘密。
内页插图
目录
第1篇 开始前的环境搭建
第1章 初识Cocos2d-x
1.1 我是怎样遇到Cocos2d-x的
1.1.1 Cocos2d的历史
1.1.2 简单介绍一下Cocos2d-x
1.1.3 笔者的个人感受
1.2 开始前的准备
1.2.1 Visual Studio 2013的安装
1.2.2 Cocos集成开发环境的安装
1.3 安卓开发环境的搭建
1.3.1 JDK的安装
1.3.2 ADT的使用
1.3.3 如何在真机上运行Cocos2d-x程序
1.3.4 多个类的情况
1.4 关于本书的一些约定
1.5 小结
第2篇 Cocos2d-x基础铺垫
第2章 Cocos2d-x基础知识学习
2.1 在Cocos2d-x中创建一个新的场景
2.2 让场景显示出来
2.3 Cocos2d-x中的一些概念
2.3.1 导演
2.3.2 节点
2.3.3 场景
2.3.4 图层
2.3.5 精灵
2.4 总结
第3章 在屏幕上显示内容
3.1 在Cocos2d-x中显示一行文字
3.2 在Cocos2d-x中显示图像
3.3 在Cocos2d-x中使用菜单
3.4 Cocos2d-x中屏幕适配的原理
3.5 在Cocos2d-x中播放声音
3.6 实战:一个简单的钢琴
3.7 小结
第4章 实现交互的功能
4.1 单点触摸的纸牌游戏
4.2 多点触摸的羊驼游戏
4.3 鼠标和键盘的加入
4.4 在Cocos2d-x中使用加速度传感器
4.5 实战:在Cocos2d-x中实现游戏摇杆
4.6 小结
第5章 让人物动起来
5.1 让精灵进行简单的动作
5.2 在Cocos2d-x中实现更加复杂的动作
5.3 在Cocos2d-x中实现动作的监听
5.4 让主角跑起来
5.5 用打包后的图片创建动画
5.6 实战:利用动画实现人物行走
5.7 小结
第6章 定时器的原理及使用
6.1 定时器的基本使用
6.2 定时器的缺陷以及改进
6.3 定时器的注册与取消
6.4 使用定时器实现触发器
6.5 实战:利用定时器优化实现人物行走的效果
6.6 实战:实现回合制游戏战斗效果
6.7 小结
第7章 地图系统的使用
7.1 使用图片作为地图
7.1.1 实现人物简单行走
7.1.2 使用分层的方式来表示路径
7.1.3 实现人物的移动
7.1.4 一点补充
7.2 瓦片地图与地图编辑器
7.2.1 获得瓦片地图
7.2.2 将地图加载到Cocos2d-x场景中
7.2.3 在项目中使用瓦片地图
7.3 障碍物的获取
7.4 简单介绍一下算法
7.4.1 深度优先和广度优先算法
7.4.2 地图的化简
7.4.3 最短路径算法
7.4.4 A星算法
7.5 小结
第8章 Cocos2d-x中的粒子系统
8.1 什么是粒子系统
8.2 粒子系统的使用
8.3 使用粒子系统创建火焰
8.4 使用粒子编辑器
8.5 小结
第9章 在Cocos2d-x中使用物理引擎
9.1 什么是物理引擎
9.2 物理引擎中常用的概念
9.2.1 世界
9.2.2 刚体
9.2.3 形状
9.2.4 夹具
9.2.5 关节
9.2.6 碰撞
9.3 在Cocos2d-x中使用物理引擎
9.4 玩家实现对刚体的操纵
9.5 Box2D中关于倍数的设定
9.6 向屏幕中加入多个小球
9.7 小结
第10章 存储和网络
10.1 Cocos2d-x中本地信息的存储
10.2 Cocos2d-x中的文件系统
10.3 Cocos2d-x中弱联网技术的使用
10.3.1 通过HTTP协议获取在线信息
10.3.2 向服务端发送请求
10.4 Cocos2d-x中XML文件的解析
10.5 小结
第3篇 Cocos2d-x技能提升
第11章 高级UI控件
11.1 九宫格是个什么东西
11.1.1 九宫格简介
11.1.2 实现九宫格的效果
11.1.3 神奇的Scale9Sprite
11.2 Scale9Sprite在按钮中的应用
11.3 在Cocos2d-x中使用滑动条
11.3.1 自定义SlideBar实现滑动条
11.3.2 使用类ControlSlider来实现滑动条的效果
11.4 另一种形式的进度条
11.5 在游戏中使用开关
11.6 小结
第12章 学习使用Cocos Studio
12.1 Cocos Studio的使用
12.1.1 Cocos Studio的作用
12.1.2 Cocos Studio中各部分的功能
12.1.3 实战:利用Cocos Studio实现登录APP
12.2 在Cocos Studio中使用自定义控件
12.3 对Cocos Studio制作的按钮进行响应
12.4 使用骨骼编辑器制作动画
12.4.1 下载谷歌的骨骼动画编辑器
12.4.2 实战:使用骨骼动画编辑器实现运动的火柴人
12.5 小结
第13章 Cocos2d-x中的设计模式
13.1 什么是设计模式
13.2 设计模式的作用是什么
13.3 Cocos2d-x中的设计模式
13.3.1 单例模式
13.3.2 二段构建模式
13.3.3 工厂模式
13.3.4 外观模式
13.3.5 观察者模式
13.3.6 中介者模式
13.4 Cocos2d-x中的防御式编程
13.5 小结
第4篇 Cocos2d-x游戏开发案例实战
第14章 2048游戏实例
14.1 2048游戏概述
14.2 游戏手势的识别
14.3 卡片类的定义和实现
14.4 卡片消除效果的实现
14.5 游戏界面的美化
14.5.1 记分牌类的定义
14.5.2 卡片背景的改变
14.5.3 卡片颜色的设定
14.5.4 卡片数值的显示
14.6 分数的计算
14.7 小结
第15章 连连看游戏实战
15.1 游戏分析
15.2 瓦片地图的制作与方块的显示
15.3 游戏中方块的定义与实现
15.4 用户操作的逻辑判断
15.5 方块连通性的判断
15.5.1 没有拐点的直线
15.5.2 一个拐点条件下连通性的判断
15.5.3 两个拐点情况的判断
15.5.4 两点连通性的判断
15.6 倒计时条的实现
15.7 道具按钮的加入
15.8 界面的优化
15.9 关卡的选择
15.10 小结
第16章 实战Popstar
16.1 消除类游戏简介
16.2 星星的定义和显示
16.3 玩家单击事件的获取
16.4 使用广度优先算法使星星消去
16.4.1 消去四周的星星
16.4.2 将连通的星星全部消去
16.5 让星星真正消去
16.5.1 让星星下落
16.5.2 星星的平移
16.5.3 一个小bug
16.6 游戏逻辑的判断
16.7 游戏开始特效与界面的修改
16.8 小结
第17章 实战纵版射击游戏
17.1 纵版射击游戏简介
17.2 背景滚动的实现
17.3 飞机类的实现
17.4 “皮卡丘”跟随玩家操纵
17.5 子弹的发射
17.6 敌人的创建
17.7 不断地创建敌机
17.8 敌机发射子弹
17.9 碰撞检测与敌机的爆炸
17.10 小结
第18章 简单的纸牌游戏
18.1 项目简介
18.2 定义一张纸牌
18.3 洗牌和发牌
18.3.1 纸牌序列的生成
18.3.2 纸牌的分发过程
18.4 “玩家类”的定义和实现
18.5 玩家和电脑出牌的实现
18.5.1 玩家出牌的实现
18.5.2 电脑出牌的实现
18.5.3 代码的封装
18.6 玩家与电脑轮流出牌的实现
18.7 实现让玩家按照规则出牌
18.8 实现电脑按照游戏规则选牌和出牌
18.9 最后来谈谈人工智能与自动机
18.9.1 自动机
18.9.2 基于深度遍历的方法
18.9.3 基于策略的方法
18.9.4 基于大数据的方法
18.10 小结
第19章 最后的一点补充
19.1 游戏素材的获取
19.2 游戏题材的选择
19.3 遇到问题怎么办
19.4 游戏如何推广
19.5 小结
精彩书摘
第1章初识Cocos2d-x
Cocos2d-x是由Cocos2d移植而来的一款跨平台2D游戏开发引擎,在最近几年创造出了不少非常流行的游戏。使用Cocos2d-x能够很容易实现在iOS、WindowsPhone、Android等平台下都可以运行的2D游戏。本章将为今后学习Cocos2d-x做一个学习前的准备,主要是来了解Cocos2d-x的一些基本情况以及Cocos2d-x开发环境的搭建。
除此之外,本章还将对后续书中的代码以及源文件等做出约定和说明,本章的主要知识点有:
Cocos2d-x是什么,它与Cocos2d是什么关系。
怎样在Windows下搭建Cocos2d-x开发环境。
怎样将游戏移植到安卓系统中。
本书的一些使用方法以及约定。
1.1我是怎样遇到Cocos2d-x的
对于一般开发者来说,游戏开发应该属于很高级的东西了,因为不管是桌面应用还是移动APP,最初入门时都可以直接使用一些现成的控件。Web开发就更不用说了,几天的HTML基础加上各种现成的源码,堆出一个非常华丽的界面是一件非常容易的事情。目前信息高度发达,不管是直接买书还是利用网上的教程,没有基础的人都可以非常轻松地构建出自己的APP,但是游戏开发就又是另一回事了。
首先,游戏要通过图像来展示,这就注定了不可能有太多现成的控件能够直接使用。
其次,游戏使用的算法逻辑要比一般APP中单纯的显示内容要复杂得多(当然只是说新闻浏览之类的简单APP),这就说明想要开发游戏,起码要有一定的算法基础。
以上两点似乎就注定了游戏开发在一般人眼中是一件非常“高大上”的事情,对于开发者来说是这样的,对于“外行”来说更是如此,因为现如今是一个看“脸”的世界。即使是一个不懂开发的人,也会觉得游戏开发是非常厉害的,因为他能够从屏幕的画面上看出这是什么。即使对面某程序员用XXX不知名的高级算法实现了可以预测未来改变世界的不知名算法。对于旁观者来说,没用的,这不过是一大坨没有意义的黑框框而已。
笔者当年正是遭受过这样的一次鄙视之后发愤图强,为了面子立志要做一个能让所有人都“看得到”的东西。但是毕竟隔行如隔山,照着教程用C#做了个类似连连看、五子棋这样简单的小游戏之后就不知道该如何继续了。
后来在贴吧看到有人说用Python学习做游戏比较方便,于是果断开始了学习Python的道路。花了一晚上时间了解了Python的基本语法之后,我才了解到一个真相:并不是Python这种语言适合开发游戏,而是在Python下有一个用于游戏开发的插件叫做LosCocos,它能让新手快速地实现一些2D游戏的开发。
在我知道真相的时刻,实际上Cocos2d已经发展得非常壮大了,已经有了Cocos2d-iPhone、Cocos2d-Windows等不同的版本,如图1-1就是Cocos2d的主要版本以及它的分支。其中本书主要介绍的就是Cocos2d-x在Windows环境下的开发。而一般所说的Cocos2d大多是指Cocos2d在Mac平台下的开发(开发的是适用于iOS以及安卓平台的APP),也有少部分是用Cocos2d直接代替了Cocos2d-x,但是它们的代码大多数时候是可以通用的,因此不需要对此过多在意。
图1-1Cocos2d的各个版本及分支
1.1.1Cocos2d的历史
这里容笔者先小小地跑一下题,稍微回顾回顾Cocos2d的历史。1973年在阿根廷,一个叫做RicardoQuesada的小孩诞生了。他暂时还不知道自己今后所肩负的使命,而是将整个童年都用来进行各种娱乐活动。直到他12岁时,母亲给他买了一台电脑,他用这台电脑学习编程语言开始制作一些简单的小游戏,然后在大学选择了计算机专业。
2005年,Ricardo萌生了一个“一星期编写一款游戏”的想法,在2005~2007两年间,他制作了许多的游戏。
终于在2008年,他在阿根廷的LosCocos决定对之前所制作的游戏进行一次整合,于是就出现了一款基于Python的游戏引擎LosCocos。一个月后,LosCocos发布了第一个版本,其名称也变成了被人们所熟知的Cocos2d。
当时正值乔布斯在努力推广iPhone平台的游戏开发,Ricardo恰到好处地捕捉到了这一机遇,开始与iPhone平台接轨,于是就有了Cocos2d-iPhone版本出现。
而现在所说的Cocos2d-x则是由触控科技在2012年以来不断提供财力支持,由原本的Mac平台移植过来的。Cocos2d-x包括了Cocos2d-x、Cocos2d-js以及CocosStudio等一系列产品。同时该公司也开发了一系列基于Cocos2d-x的游戏产品,如图1-2所示。
图1-2触控科技官网所展示的基于Cocos2d-x的游戏产品
在表1-1中展示了目前Cocos2d家族的主要版本以及支持平台。
表1-1Cocos2d各个版本以及支持平台
分支引擎使用语言支持平台
Cocos2dPython桌面操作系统
Cocos2d-iPhoneObjective-C、JavaScriptiOS
Cocos2d-xC++、Lua、JavaScriptWindows、Android、WP等多种平台
Cocos2d-html5JavaScript支持HTML5的浏览器
ShinyCocosRubyiOS
Cocos2d-WindowsC++WindowsXP/7
Cocos2d-androidJavaAndroid
Cocos2d-android1JavaAndroid
Cocos2d-xnaC#MicrosoftandMonoGameplatforms
Cocos2d-jsJavaScript
Cocos2d-x游戏开发实战精解 epub pdf mobi txt 电子书 下载 2024
Cocos2d-x游戏开发实战精解 下载 epub mobi pdf txt 电子书 2024