搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Cocos2d-x实战.Lua卷.For Lua
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787302391111
  • 作      者:
    关东升著
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2015
收藏
编辑推荐

《Cocos2d-x实战:Lua卷》是著名移动开发专家关东升倾力创作的“Cocos2d-x实战”典藏大系之一!本书基于Cocos2d-x 3.2版本,系统论述Cocos2d-x之Lua开发的理论与实战。全书近500页,不仅系统梳理了Cocos2d-x开发的基本方法,并给出了100多个小的示例及综合案例。是一本Cocos2d-x开发入门实践指导百科全书。

推荐一:本书配合《Cocos2d-x实战:工具卷》学习。

推荐二:关东升老师录制了400课时的Cocos教学视频,读者可以登录“智捷课堂”在线学习。

 


展开
作者简介

    关东升,国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。担任51CTO社区iOS技术顾问,精通iOS、Android和Windows Phone及HTML5等移动开发技术。曾先后主持开发大型网络游戏《神农诀》的iOS和Android客户端开发,国家农产品追溯系统的iPad客户端开发,酒店预订系统的iOS客户端开发,金融系统的iOS、Windows Phone 及Android客户端开发。在App Store上发布数款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。长期为中国移动研究院、云南移动、东软、方正科技、大唐电信、中石油、深圳康拓普、上海财富168、天津港务局等企事业单位授课。

展开
内容介绍

  《Cocos2d-x实战 Lua卷》是介绍Cocos2d-x Lua游戏编程和开发技术的书籍,介绍了使用Cocos2dx Lua中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台移植、程序代码管理、两大应用商店发布产品。全书分为六篇: 基础篇、进阶篇、数据与网络篇、优化篇、跨平台移植篇和实战篇,共23章。基础篇包括第1~8章,分别是Cocos2d-x Lua介绍、环境搭建、标签、菜单、精灵、场景、层、动作、特效、动画和用户事件。进阶篇包括第9~12章,分别是游戏音乐与音效、粒子系统、瓦片地图和物理引擎。数据与网络篇包括第13~15章,分别是数据持久化、基于HTTP的网络通信、Node.js与WebSocket网络通信。优化篇为第16章,主要介绍性能优化。跨平台移植篇包括第17章和第18章,分别是移植到Android平台和移植到iOS平台。实战篇包括第19~23章,分别是使用Git管理程序代码、项目实战——迷失航线手机游戏、为迷失航线游戏添加广告、发布放到Google play应用商店和发布放到苹果App Store。

展开
精彩书摘

第3章Hello Cocos2dx Lua


在开始详细介绍Cocos2dx Lua引擎的API之前,有必要先了解一下手机游戏引擎有哪些和了解Cocos2dx Lua的前世今生。

然后从一个HelloLua入手,介绍Cocos2dx Lua的基本开发流程、Cocos2dx Lua生命周期以及Cocos2dx Lua核心知识体系。


3.1移动平台游戏引擎介绍


游戏引擎是指一些已编写好的游戏程序模块。游戏引擎包含渲染引擎(即“渲染器”,包括二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等子系统。

在目前移动平台游戏引擎中主要可以分为2D和3D引擎。2D引擎主要有Cocos2diphone、Cocos2dx、Cocos2dJS、Corona SDK、Construct 2、WiEngine和Cyclone 2D,3D引擎主要有Unity 3D、Unreal Development Kit、ShiVa 3D和Marmalade。此外还有一些针对于HTML 5的游戏引擎,如Cocos2dhtml5、XCanvas和Sphinx等。

这些游戏引擎各有千秋,但是目前得到市场普遍认可的2D引擎是Cocos2diphone、Cocos2dx和Cocos2dJS,3D引擎是Unity 3D。


3.2Cocos2d游戏引擎

Cocos2diphone、Cocos2dx和Cocos2dJS是目前最流行的2D游戏引擎。它们属于同一家族,具有相同的API。

3.2.1Cocos2d游戏引擎家谱

在介绍Cocos2dx Lua之前有必要先介绍一下Cocos2d的家谱,如图31所示是Cocos2d的家谱。




图31Cocos2d的家谱



Cocos2d最早是由阿根廷的Ricardo和他的朋友使用Python开发的,后移植到iPhone平台,使用的语言是ObjectiveC。随着在iPhone平台取得了成功,Cocos2d引擎变得更加多元化,将对其中各个引擎介绍如下。

 ShinyCocos: 使用Ruby对Cocos2diphone进行封装,使用Ruby api开发。

  CocosNet: 是在MonoTouch平台上使用的Cocos2d引擎,采用.NET实现。

  Cocos2dandroid: 是为Android平台使用的Cocos2d引擎,采用Java实现。

  Cocos2dandroid1: 是为Android平台使用的Cocos2d引擎,采用Java实现,由国内人员开发的。

  Cocos2djavascript: 是采用Javascript脚本语言实现的Cocos2d引擎。

  Cocos2dx: 是采用C++实现的Cocos2d引擎,它是由Cocos2dx团队开发的分支项目。

  Cocos2dJS: 是采用JavaScriptAPI的Cocos2d引擎,一方面它可以绑定在Cocos2dx上开发基于本地技术的游戏; 另一方面依托浏览器运行,开发基于Web的网页游戏。它也是由Cocos2dx团队开发的分支项目。

此外,历史上Cocos2d还出现过很多分支,随着技术的发展这些逐渐消亡了,其中最有生命力的当属Cocos2dx和Cocos2dJS引擎了。


3.2.2Cocos2dx引擎

Cocos2dx设计目标如图32所示。横向能够支持各种操作系统,桌面系统包括Windows、Linux和Mac OS X,移动平台包括iOS、Android、Windows Phone、Bada、BlackBerry和MeeGo等。纵向方面向下能够支持OpenGL ES1.1、OpenGL ES1.5和OpenGL ES2.0,以及DirectX11等技术,向上支持JavaScript和Lua脚本绑定。




图32Cocos2dx设计目标




简单说Cocos2dx设计目标是为了实现跨平台,而不再为同一款游戏在不同平台发布而进行编译了。而且Cocos2dx为程序员考虑的更多,很多程序员可能对于C++不熟悉,针对这种情况可以使用JavaScript和LuaLua是一个小巧的脚本语言,是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组(Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo)于1993年开发。——引自于百度百科http://baike.baidu.com/view/416116.htm?fr=wordsearch开发游戏。


3.2.3JavaScript和Lua绑定

Cocos2dx设计得非常巧妙,可以绑定JavaScript和Lua脚本语言,使得不熟悉C++的人员也能使用Cocos2dx引擎开发游戏,Cocos2dx不使用C++语言的API,而是使用JavaScript和Lua语言API。Cocos2dx绑定JavaScript和Lua脚本原理如图33所示。




图33Cocos2dx绑定JavaScript和Lua脚本




从图33可知,通过Cocos2dx和Cocos2dJS引擎,程序员可以开发网页游戏和本地游戏。图中A线路和B线路都是给掌握JavaScript脚本的程序员准备的,通过A线路,使用Cocos2dJS引擎开发基于HTML5的网页游戏。同样的JavaScript代码,也可以通过B线路,使用js binding(js绑定)技术透过C++ API访问Cocos2dx引擎,开发本地游戏。使得同样的JavaScript代码就可以实现在不同平台下运行。


图33中的C线路是给熟悉C++的程序员准备的。通过C++ API访问Cocos2dx引擎,开发本地游戏。


图33中的D线路是本书重点介绍的内容,是为熟悉Lua脚本的程序员准备的。使用Lua binding(Lua绑定)技术透过C++ API访问Cocos2dx引擎,开发本地游戏,为统一概念,本书中Cocos2dx Lua绑定技术称为Cocos2dx Lua。



通过Cocos2dx和Cocos2dJS引擎Cocos2dx团队构建了自己的技术生态圈,通过这些引擎使得游戏开发越来越简单。

3.3搭建Cocos2dx Lua开发环境


使用Cocos2dx Lua开发游戏,主要的程序代码是Lua语言,因此,凡是能够开发Lua语言工具都适用于Cocos2dx Lua游戏开发。本书推荐Cocos Code IDE工具。


3.3.1搭建Cocos Code IDE开发环境

Cocos Code IDE是Cocos2dx团队开发的,用于开发Cocos2dJS和Cocos2dx Lua绑定的游戏工具,它是基于EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。——引自于百度百科http://baike.baidu.com/subview/23576/9374802.htm平台的开发工具,Eclipse基于Java的要想运行Cocos Code IDE工具,需要安装JDK或JRE,JDK是Java开发工具包,JRE是Java运行环境。

1. JDK

JDK的安装和设置见2.1.1节。


2. Cocos Code IDE的下载和安装

Cocos Code IDE的下载地址是http://www.cocos2dx.org/download,在浏览器中的页面如图34所示。选择合适的文件下载,目前包括了Mac OS X版本和Windows版本,注意Windows有32位和64位之分,还有安装(Setup)版本和压缩(Zip)版本之分。




图34下载Cocos Code IDE



下载cocoscodeidewin641.0.0rc1.zip解压版本,解压后找到Cocos Code IDE.exe文件,运行可以启动Cocos Code IDE工具,在启动过程中需要选择Workspace目录,如图35所示,Workspace目录是工程的管理目录,选择好之后单击OK按钮,如果该目录不存在则重新创建。





图35选择Workspace



Cocos Code IDE的具体使用方法下面章节再介绍。


3.3.2下载和使用Cocos2dx Lua官方案例

首先到Cocos2dx官方网站下载Cocos2dx开发包。Cocos2dx3.2下载解压后的目录结构如图36所示。




图36Cocos2dx 3.2开发包内容




如果要运行官方的案例可以进入到build目录,build目录中的内容如图37所示,这里包含了各个平台编



图37build目录内容


译和运行案例的工程等文件,其中cocos2d_tests.xcodeproj文件是Cocos2dx案例的Xcode工程文件,cocos2dwin32.vc2012.sln文件是Cocos2dx案例Win32平台下Visual Studio 2012解决方案文件,另外的cocos2dwp8.vc2012.sln文件是Cocos2dx案例Windows Phone 8平台下Visual Studio 2012解决方案文件。



如果在Window下学习和开发,一般运行cocos2dwin32.vc2012.sln解决方案就可以了。如果启动cocos2dwin32.vc2012.sln解决方案,进入如图38所示的Visual Studio 2012界面,其中的luatests工程是Cocos2dx官方提供的Cocos2dx Lua案例工程,需要选中luatests工程,右击选择“设置启动项目”,然后运行上方工具栏中的运行调试按钮,运行luatests工程。





图38Cocos2dx Lua案例




首次运行编译Cocos2dx时间会长一些,运行起来之后会看到一个Windows的窗口(如图39(a)所示),单击其中的一个菜单项可以运行相应的示例(如图39(b)所示)。





图39运行案例




如果想查看luatests源代码,需要到<Cocos2dx引擎目录>\tests\luatests目录下,使用文本编辑工具打开Lua代码文件查看。


3.4第一个Cocos2dx Lua游戏


编写的第一个Cocos2dx Lua程序命名为HelloLua,从该工程开始学习其他的内容。

3.4.1创建工程

创建Cocos2dx Lua工程可以通过Cocos2dx提供的命令工具Cocos实现,但这种方式不能与Cocos Code IDE集成开发工具很好地集成,不便于程序编写和调试。由于Cocos Code IDE工具是Cocos2dx开发的专门为Cocos2dJS和Cocos2dx Lua开发设计的,因此使用Cocos Code IDE工具创建Cocos2dx Lua工程很方便。

首先需要在Cocos Code IDE工具中先配置Lua框架,打开Cocos Code IDE工具,选择菜单Window→Preferences,弹出对话框如图310所示,选择Cocos→Lua在右边的Lua Frameworks,选择<Cocos2dx引擎目录>。




图310配置Lua框架



Lua框架配置不需要每次都进行,只需要在最开始时配置,但创建工程的时候,Cocos Code IDE工具会从这个Lua框架目录中创建工程文件。

接下来就可以创建Lua工程了,选择菜单File→New→Project,如图311所示,弹出项目类型选择对话框。




图311项目类型选择对话框




选中CocosLuaProject,然后单击Next按钮,弹出如图312所示的对话框。在Project Name项目中输入工程名称,Create Project in Workspace是在Workspace目录中创建工程,需要选中该项目,Create From Existing Resource项目选中可以在已经存在的工程创建,现在不需要选中该项目。

单击Next按钮进入如图313所示的配置运行环境对话框,在该对话框中可以配置项目运行时信息。Orientation是配置模拟器的朝向,其中landscape是横屏显示,portriat是竖屏显。Desktop Runtime Settings中的Title是设置模拟器的标题,Desktop Windows initialize Size是设置模拟器的大小。Add Native Codes是设置添加本地代码到工程。最后单击Finish按钮完成创建操作,创建好工程之后如图314所示。



图312新建项目对话框





图313配置运行环境对话框





图314创建工程成功界面


3.4.2Cocos Code IDE中运行

创建好工程后可以测试一下,在左边的工程导航面板中选中HelloLua工程,右击菜单选择Run As→Cocosluainding运行刚刚创建的工程,运行结果如图315所示。




图315运行工程界面



编写的程序代码在src目录下,在本例中,Lua文件负责处理如图316所示的场景界面逻辑。如果想调试程序,可以设置断点,如图317所示。单击行号之前的位置。




图316设置断点



右击选择Debug As→CocosLuabinding菜单。如图317所示,程序运行到第31行挂起,并进入调试视图,在调试视图中可以查看程序运行的堆栈、变量、断点、计算表达式和单步执行程序等操作。





图317运行到断点挂起



展开
目录

第一篇 基础篇
第1章 准备开始
1.1 本书学习路线图
1.2 使用实例代码
第2章 Lua语言基础
2.1 环境搭建
2.1.1 Lua编辑工具
2.1.2 HelloLua实例测试
2.2 标识符和保留字
2.2.1 标识符
2.2.2 保留字
2.3 常量和变量
2.3.1 常量
2.3.2 变量
2.3.3 命名规范
2.4 注释
2.5 Lua数据类型
2.5.1 数据类型
2.5.2 type函数
2.5.3 数据类型转换
2.6 运算符
2.6.1 算术运算符
2.6.2 关系运算符
2.6.3 逻辑运算符
2.6.4 运算优先级
2.7 控制语句
2.7.1 分支语句
2.7.2 循环语句
2.7.3 跳转语句
2.8 表类型
2.8.1 字典
2.8.2 数组
2.9 字符串类型
2.9.1 字符串截取
2.9.2 字符串转换
2.9.3 字符串查询
2.9.4 字符串格式化
2.10 函数
2.10.1 使用函数
2.10.2 变量作用域
2.10.3 多重返回值
2.11 闭包函数
2.11.1 嵌套函数
2.11.2 返回函数
2.11.3 使用闭包表达式
2.12 Lua中的面向对象
2.12.1 Lua中的对象
2.12.2 类的实现
本章小结
第3章 HelloCocos2d?xLua
3.1 移动平台游戏引擎介绍
3.2 Cocos2d游戏引擎
3.2.1 Cocos2d游戏引擎家谱
3.2.2 Cocos2d?x引擎
3.2.3 JavaScript和Lua绑定
3.3 搭建Cocos2d?xLua开发环境
3.3.1 搭建CocosCodeIDE开发环境
3.3.2 下载和使用Cocos2d?xLua官方案例
3.4 第一个Cocos2d?xLua游戏
3.4.1 创建工程
3.4.2 CocosCodeIDE中运行
3.4.3 工程文件结构
3.4.4 代码解释
3.5 重构HelloLua
3.6 Cocos2d?xLua核心概念
3.6.1 导演
3.6.2 场景
3.6.3 层
3.6.4 精灵
3.6.5 菜单
3.7 Node与Node层级架构
3.7.1 Node中重要的操作
3.7.2 Node中重要的属性
3.7.3 游戏循环与调度
3.8 Cocos2d?xLua坐标系
3.8.1 UI坐标
3.8.2 OpenGL坐标
3.8.3 世界坐标和模型坐标
本章小结
第4章 标签和菜单
4.1 使用标签
4.1.1 LabelTTF
4.1.2 LabelAtlas
4.1.3 LabelBMFont
4.1.4 Cocos2d?x3.x标签类Label
4.2 使用菜单
4.2.1 文本菜单
4.2.2 精灵菜单和图片菜单
4.2.3 开关菜单
本章小结
第5章 精灵
5.1 Sprite精灵类
5.1.1 创建Sprite精灵对象
5.1.2 实例:使用纹理对象创建Sprite
5.2 精灵的性能优化
5.2.1 使用纹理图集
5.2.2 使用精灵帧缓存
本章小结
第6章 场景与层
6.1 场景与层的关系
6.2 场景切换
6.2.1 场景切换相关函数
6.2.2 场景过渡动画
6.3 场景的生命周期
6.3.1 生命周期函数
6.3.2 多场景切换生命周期
本章小结
第7章 动作、特效和动画
7.1 动作
7.1.1 瞬时动作
7.1.2 间隔动作
7.1.3 组合动作
7.1.4 动作速度控制
7.1.5 函数调用
7.2 特效
7.2.1 网格动作
7.2.2 实例:特效演示
7.3 动画
7.3.1 帧动画
7.3.2 实例:帧动画的使用
本章小结
第8章 用户事件
8.1 事件处理机制
8.1.1 事件分发器
8.1.2 触摸事件
8.1.3 实例:单点触摸事件
8.1.4 实例:多点触摸事件
8.1.5 键盘事件
8.2 加速度计与加速度事件
8.2.1 加速度计
8.2.2 加速计事件
8.2.3 实例:运动的小球
本章小结
……

第二篇 进阶篇
第三篇 数据与网络篇
第四篇 优化篇
第五篇 平台移植篇
第六篇 实战篇

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证