libGDX移动游戏开发从入门到精通

978-7-115-40799-3
作者: 黄俊东
译者:
编辑: 陈冀康

图书目录:

目录

第 1章 libGDX简介 1

1.1 libGDX介绍 1

1.1.1 libGDX的特点 1

1.1.2 libGDX中的工具 3

1.1.3 libGDX的历史 5

1.1.4 我的libGDX版本 5

1.2 搭建libGDX开发环境 5

1.2.1 libGDX下载 6

1.2.2 Android项目的新建 7

1.2.3 libGDX的安装 9

1.3 开始第 一个libGDX游戏 11

1.3.1 第 一个HelloWorld程序的编写 11

1.3.2 在Android设备上调试 15

1.3.3 桌面调试环境的搭建 17

1.3.4 HelloWorld程序的简单分析 22

1.4 运行libGDX的官方Demo 23

1.4.1 libGDX的官网 23

1.4.2 Demo的下载演示 24

1.5 其他的一些准备工作 25

1.5.1 关联Android源码 25

1.5.2 libGDX源码的关联 28

1.5.3 直接打开.jar文件的配置 30

第 2章 libGDX的架构分析 34

2.1 生命周期 34

2.1.1 libGDX中生命周期的图示 34

2.1.2 生命周期中各个函数的分析 35

2.1.3 实例:通过例子深刻理解生命

周期 35

2.2 模块 38

2.2.1 libGDX模块组成的图示 38

2.2.2 libGDX模块的分析 39

2.3 运行环境的相关查询 40

2.3.1 获取目前的运行环境 40

2.3.2 获取内存的消耗情况 41

2.4 日志工具 41

2.4.1 Android中的日志等级及输出方法 41

2.4.2 libGDX中的日志等级及输出方法 42

2.4.3 一种方便的输出日志的方法 44

第3章 数据存储 45

3.1 简介 45

3.2 Android中SharedPreferences的使用 45

3.2.1 获得一个SharedPreferences对象 46

3.2.2 从SharedPreferences获取数据 46

3.2.3 往SharedPreferences 保存数据 46

3.2.4 实例:使用Android中的

SharedPreferences来实现

存取数据 47

3.3 libGDX对SharedPreferences的支持 49

3.3.1 获得一个SharedPreferences数据 49

3.3.2 从SharedPreferences获取数据 49

3.3.3 往SharedPreferences保存数据 49

3.3.4 实例:使用libGDX对

SharedPreferences的支持

来实现数据的存取 50

3.4 Android中操作XML形式的数据 51

3.4.1 XML的定义 51

3.4.2 XML的优缺点 52

3.4.3 Android中使用DOM来解析

XML形式的数据 52

3.4.4 Android中使用DOM来生成

XML形式的数据 55

3.4.5 Android中使用SAX来解析

XML形式的数据 58

3.4.6 Android中使用SAX来生成

XML形式的数据 61

3.4.7 Android中使用PULL来解析

XML形式的数据 64

3.4.8 Android中使用PULL来生成

XML形式的数据 67

3.5 libGDX对XML的支持 70

3.5.1 使用libGDX中的接口将生成

XML形式的数据 70

3.5.2 使用libGDX中的接口解析

XML形式的数据 72

3.6 Android中操作JSON格式的数据 74

3.6.1 JSON的定义 74

3.6.2 JSON的优缺点 74

3.6.3 Android中JSON的原始解析

方法 75

3.6.4 Android中JSON的原始生成

方法 78

3.6.5 Android中使用Gson来解析

JSON形式的数据 79

3.6.6 Android中使用Gson来生成

JSON形式的数据 80

3.6.7 Android中使用FastJson来解析

JSON形式的数据 81

3.6.8 Android中使用FastJson来生成

JSON形式的数据 83

3.6.9 以上3种操作JSON格式数据的

方法的简单比较 83

3.7 libGDX中对JSON格式数据的支持 83

3.7.1 使用libGDX中的API生成

JSON形式的数据 83

3.7.2 使用libGDX中的API解析

JSON形式的数据 86

3.8 XML与JSON的简单比较 86

3.8.1 关于轻量级和重量级 86

3.8.2 关于数据格式编码及解析难度 87

3.9 libGDX中的文件处理 87

3.9.1 几种文件存储路径 88

3.9.2 检查存储路径是否可用 88

3.9.3 获得一个FileHandle实例 89

3.9.4 对FileHandle的常见操作 89

3.9.5 读取文件 90

3.9.6 写文件 90

3.9.7 使用FileHandle来删除、拷贝、

移动、重命名文件 90

第4章 libGDX中的UI编程 92

4.1 绘制的基础—SpriteBatch类的介绍 92

4.1.1 SpriteBatch的功能 92

4.1.2 基本API 92

4.2 中文字符的显示—hiero工具的

介绍与基本使用 92

4.2.1 hiero工具的下载 93

4.2.2 hiero的功能界面剖析 93

4.2.3 利用hiero生成程序中要用的

字体文件 94

4.3 文本信息的显示—BitmapFont类的

基本使用 95

4.3.1 BitmapFont的功能 95

4.3.2 基本API 95

4.3.3 实例:使用BitmapFont来显示

一段文本信息 95

4.4 自定义的中文字体的显示

—TTF字库的介绍与使用 97

4.4.1 功能 97

4.4.2 基本API 97

4.4.3 使用优美字体前的准备 98

4.4.4 实例:显示一段帅气的文本 98

4.5 图片的显示(1)—Texture类的介绍

及基本使用 100

4.5.1 功能 100

4.5.2 基本API 100

4.5.3 实例:使用SpriteBatch和Texture

在屏幕中显示一张图片 101

4.6 图片的显示(2)—TextureRegion

类的介绍与基本使用 103

4.6.1 功能 103

4.6.2 基本API 103

4.6.3 实例:使用SpriteBatch和

TextureRegion在屏幕中显示

一张图片 104

4.7 图片的显示(3)—Sprite类的介绍

与基本使用 105

4.7.1 功能 105

4.7.2 基本API 105

4.7.3 实例:旋转的精灵 106

4.8 libGDX中的合图(1)—合图工具

TexturePacker 的介绍与基本使用 107

4.8.1 TexturePacker的下载 108

4.8.2 TexturePacker功能界面剖析 108

4.8.3 利用TexturePacker进行合图 109

4.9 libGDX中的合图(2)—TextureAtlas

类的介绍与基本使用 111

4.9.1 功能 111

4.9.2 基本API 111

4.9.3 实例:使用TextureAtlas后的

图片的使用 111

4.10 自定义动画—Animation类的介绍

与基本使用 113

4.10.1 功能 113

4.10.2 基本API 113

4.10.3 实例:奔跑的小人 114

4.11 libGDX中的粒子编辑器(1)

—Particle-Editor的介绍与基本使用 116

4.11.1 下载 116

4.11.2 功能界面剖析 117

4.11.3 利用粒子编辑器生成相应文件 118

4.12 libGDX中的粒子编辑器(2)

—ParticleEffect类的介绍与基本

使用 119

4.12.1 功能 119

4.12.2 基本API 119

4.12.3 实例:类似于微信的烟火效果 119

第5章 libGDX中的常见UI组件 122

5.1 演员与舞台的简单介绍 122

5.2 文本信息的显示—Label、LabelStyle类的介绍与基本使用 122

5.2.1 功能 122

5.2.2 基本API 122

5.2.3 实例:用Label显示一段文本

信息 123

5.3 图片的显示—Image类的介绍与

基本使用 124

5.3.1 功能 124

5.3.2 基本API 125

5.3.3 实例:实现一个“旋转的飞机” 125

5.4 Image生成的另外一种方式—Pixmap

类的介绍与基本使用 126

5.4.1 功能 127

5.4.2 基本API 127

5.4.3 实例:使用Pixmap来画多种

几何图形 127

5.4.4 实例:使用Pixmap来生成

涂抹功能 129

5.4.5 Pixmap在使用时需要注意的

问题—白屏问题 133

5.5 图片翻转的两种方式 134

5.5.1 图片翻转的第 一种方式—

使用TextureRegion的flip( ) 134

5.5.2 图片翻转的第 二种方式—

通过SpriteBatch的draw()方法 135

5.6 滚动条—ScrollPane的介绍与基本

使用 137

5.6.1 功能 137

5.6.2 基本API 137

5.6.3 实例:使用ScrollPane实现一个

选关界面 137

5.7 游戏中的背景移动 139

5.7.1 原理分析 139

5.7.2 实现天天打飞机中的“背景

移动” 141

5.8 演员的常见动画的介绍与基本使用 143

5.8.1 旋转动画—rotateTo与rotateBy 144

5.8.2 位移动画—moveTo与moveBy 144

5.8.3 透明度渐变动画—fadeIn()

与fadeOut() 145

5.8.4 缩放动画—scaleTo()与scaleBy() 145

5.8.5 组合动画—顺序动画与并行

动画 145

5.8.6 实例:Tween动画的综合例子 146

5.9 按钮—Button类的介绍与基本使用 148

5.9.1 功能 148

5.9.2 基本API 148

5.9.3 实例:使用Button来控制一个

loading图片 149

5.10 游戏摇杆—TouchPad的介绍与

基本使用 153

5.10.1 功能 153

5.10.2 基本API 154

5.10.3 实例:使用游戏摇杆控制

游戏元素 155

5.11 滑块—Slider的介绍与基本使用 159

5.11.1 功能 159

5.11.2 基本API 160

5.11.3 实例:使用滑块Slider来控制

游戏元素的缩放 161

5.12 分割窗口—SplitPane的介绍与

基本使用 165

5.12.1 功能 166

5.12.2 基本API 166

5.12.3 实例:使用分割窗口SplitPane

来实现一个分割窗口 167

5.13 复选框—CheckBox的介绍与基本

使用 170

5.13.1 功能 171

5.13.2 基本API 171

5.13.3 实例:使用复选框CheckBox

来控制画面的切换 172

5.14 列表—List的介绍与基本使用 176

5.14.1 功能 176

5.14.2 基本API 177

5.14.3 实例:使用列表List来显示

内容 178

5.15 文本输入框—TextField的介绍与

基本使用 181

5.15.1 功能 181

5.15.2 基本API 181

5.15.3 实例:使用文本输入框TextField

来实现文本信息的输入 183

第6章 libGDX中的事件处理与音效 188

6.1 InputProcessor的介绍与基本使用 188

6.1.1 InputMultiplexer的介绍与基本

使用 189

6.1.2 实例:使用按钮来操控滚动条 190

6.2 振动器的介绍与使用 192

6.2.1 准备工作—添加相应的权限 192

6.2.2 基本API 193

6.2.3 实例:按按钮触发振动 193

6.3 back键和menu键的捕捉 194

6.4 短音频文件的处理—Sound类的介绍

与基本使用 195

6.4.1 功能 195

6.4.2 基本API 195

6.4.3 实例:给按钮添加单击声音 195

6.5 长音频文件的处理—Music类的介绍

与基本使用 196

6.5.1 功能 197

6.5.2 基本API 197

6.5.3 实例:单击某一个按钮播放音乐 197

第7章 资源加载器、游戏界面的跳转以及

物理引擎 199

7.1 资源加载器—AssetManager类的介绍

与基本使用 199

7.1.1 功能 199

7.1.2 基本API 200

7.1.3 实例:游戏中的loading界面

第 一部分 200

7.1.4 实例:游戏中的loading界面

第 二部分 203

7.2 游戏界面的跳转 204

7.2.1 第 一种方式—隐藏其中一个,

显示另外一个 204

7.2.2 第 二种方式—setScreen() 206

7.3 libGDX中的物理引擎—Box2D

基础 209

7.3.1 基础类概览 209

7.3.2 基础类的详细介绍 210

7.3.3 实例:下降的小球与砖块 213

第8章 libGDX中的UI编辑器 216

8.1 让CocosStudio成为libGDX的UI

编辑器 216

8.2 CocosStudio的UI编辑器的基本

使用 217

8.2.1 新建项目 217

8.2.2 调整屏幕大小 218

8.2.3 导入资源 219

8.2.4 摆放素材 219

8.2.5 设置元素属性 220

8.2.6 修改元素的名字 221

8.2.7 保存项目 221

8.3 解析CocosStudio的UI文件 221

8.3.1 找到数据文件 221

8.3.2 简单分析数据文件 222

8.3.3 编写代码解析JSON文件 223

8.3.4 CocosStudio解析工具类的基本

用法 228

8.3.5 让CocosStudio UI编辑器的数据

在libGDX中完 美运行 229

8.4 CocosStudio生成的JSON文件中的

隐患及解决方案 231

8.4.1 隐患分析 231

8.4.2 解决方案 231

第9章 小游戏实战—捡金币 232

9.1 游戏的感性认识 232

9.1.1 游戏运行效果图 232

9.1.2 组成分析 233

9.2 金币、背景的实现的原理分析 233

9.3 游戏成就的原理分析及游戏中的

碰撞检测 233

9.3.1 检测的简单介绍 234

9.3.2 游戏成就的原理分析 234

9.4 成功界面与失败界面的原理分析 234

9.5 剩余时间的原理分析 235

9.6 代码实现 235

9.6.1 金币(Jinbi) 逻辑体的实现 235

9.6.2 工具类(Utils)的实现 237

9.6.3 背景(BgImage)逻辑体的实现 237

9.6.4 游戏主逻辑体MyGame 239

9.6.5 Android与libGDX交互类

MainActivity的编写 244

第 10章 休闲类游戏—2048 245

10.1 2048的由来及功能概述 245

10.1.1 2048的由来 245

10.1.2 功能简介 245

10.2 游戏的策划及准备工作 247

10.2.1 游戏的策划 247

10.2.2 Android平台下游戏的准备工作 247

10.3 游戏的架构 248

10.3.1 游戏中用到的主要技术 248

10.3.2 各类的简要介绍 248

10.3.3 游戏的框架简介 249

10.3.4 游戏中核心逻辑的几个要点 250

10.4 游戏程序入口的设计与实现 251

10.4.1 MainActivity的实现 251

10.4.2 MyGame类的实现 252

10.5 游戏主界面GameScreen的设计与

实现 253

10.5.1 游戏主界面的框架设计 253

10.5.2 游戏主界面GameScreen的

实现 257

10.6 游戏中所涉及的各个逻辑体 270

10.6.1 资源管理类Assets的设计 270

10.6.2 资源管理类Assets的实现 271

10.6.3 游戏中的常量类Contants 272

10.6.4 游戏中分数逻辑体Score类的

设计与实现 273

10.6.5 每种分值对应的颜色的逻辑体

Square的设计 274

10.6.6 Square类的实现 275

10.6.7 分数格子逻辑体Cell类的设计 279

10.6.8 分数格子逻辑体Cell类的实现 280

10.6.9 数据存储与恢复逻辑体Prefs

的设计 285

10.6.10 数据存储与恢复逻辑体Prefs

的实现 285

10.7 游戏的优化与改进 289

详情

本书以开发出一个较为完善的小游戏为主线,全面介绍了基于.libGDX进行游戏开发所需要具备的各种知识,并告诉读者在进行实战开发时所需要遵循的一些原则、思想,并在其中穿插个人在游戏开发时所总结出来的一些经验

图书摘要

相关图书

DirectX 12 3D 游戏开发实战
DirectX 12 3D 游戏开发实战
Python和NLTK自然语言处理
Python和NLTK自然语言处理
scikit-learn机器学习(第2版)
scikit-learn机器学习(第2版)
C++编程自学宝典
C++编程自学宝典
数据科学实战手册(第2版)
数据科学实战手册(第2版)
Scala实用指南
Scala实用指南

相关文章

相关课程