《Android 4游戏编程入门经典》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:策希纳(MarioZechner)著;格林(RobertGreen)著;曾繁贰译;于建业译;王炜译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302301059
  • 页数:534 页
图书介绍:通过本书的学习,读者可以掌握如下技能:Android游戏设计基础——认识你的客户,了解不同Android设备的功能和局限性,搞清楚好的游戏设计的一般目标;如何设计出用户可以一直玩而不厌烦的游戏;挖掘传统的Canvas-drawn方法和基于硬件加速的2D、3D图形设计的潜力;创建自己的游戏引擎;完成自己的2D OpenGL游戏等。

第1章 Android,后起之秀 1

1.1 Android简介 1

1.2 版本分裂 3

1.3 谷歌的角色 3

1.3.1 Android开源项目 3

1.3.2 Android Market 4

1.3.3 挑战赛、设备播种计划和谷歌I/O 4

1.4 Android的功能和体系结构 5

1.4.1 内核 6

1.4.2 运行库和Dalvik虚拟机 6

1.4.3 系统库 7

1.4.4 应用程序框架 8

1.5 软件开发工具包 8

1.6 开发人员社区 9

1.7 设备,设备,设备 9

1.7.1 硬件 9

1.7.2 设备的范围 10

1.8 所有设备之间的兼容性 15

1.9 不同的手机游戏 15

1.9.1 人手一台游戏机 16

1.9.2 随时上网 16

1.9.3 普通用户与游戏迷 17

1.9.4 市场很大,开发人员很少 17

1.10 小结 18

第2章 从Android SDK开始 19

2.1 搭建开发环境 19

2.1.1 安装JDK 20

2.1.2 安装Android SDK 20

2.1.3 安装Eclipse 21

2.1.4 安装ADT Eclipse插件 22

2.1.5 Eclipse快速浏览 23

2.1.6 一些实用的Eclipse快捷键 24

2.2 Android环境下的Hello World 25

2.2.1 创建项目 25

2.2.2 进一步分析项目 26

2.2.3 编写应用程序代码 27

2.3 运行和调试Android应用程序 29

2.3.1 连接设备 29

2.3.2 创建一个Android虚拟设备 29

2.3.3 运行应用程序 30

2.3.4 调试应用程序 32

2.3.5 LogCat和DDMS 34

2.3.6 使用ADB 36

2.4 小结 37

第3章 游戏开发基础 39

3.1 游戏类型 39

3.1.1 休闲游戏 40

3.1.2 益智游戏 41

3.1.3 动作和街机游戏 42

3.1.4 塔防游戏 44

3.1.5 创新 45

3.2 游戏设计:笔比代码更强大 46

3.2.1 游戏的核心机制 46

3.2.2 一个故事和一种艺术风格 47

3.2.3 画面和切换 48

3.3 代码:具体细节 52

3.3.1 应用程序和窗口管理 52

3.3.2 输入 53

3.3.3 文件I/O 56

3.3.4 音频 57

3.3.5 图形 60

3.3.6 游戏框架 69

3.4 小结 75

第4章 面向游戏开发人员的Android 77

4.1 定义一个Android应用程序:清单文件 77

4.1.1 〈manifest〉元素 78

4.1.2 〈application〉元素 79

4.1.3 〈activity〉元素 80

4.1.4 〈uses-permission〉元素 82

4.1.5 〈uses-feature〉元素 83

4.1.6 〈uses-sdk〉元素 84

4.1.7 10个简单步骤建立Android游戏项目 84

4.1.8 市场过滤器 86

4.1.9 定义游戏图标 87

4.2 Android API基础 87

4.2.1 创建测试项目 88

4.2.2 活动的生命周期 91

4.2.3 处理输入设备 96

4.2.4 文件处理 110

4.2.5 音频编程 116

4.2.6 播放音效 116

4.2.7 音乐流 119

4.2.8 基本图形编程 122

4.3 最佳实践 143

4.4 小结 144

第5章 Android游戏开发框架 145

5.1 制定计划 145

5.2 AndroidFileIO类 146

5.3 AndroidAudio、AndroidSound和AndroidMusic 147

5.4 AndroidInput和Accelerometer-Handler 152

5.4.1 AccelerometerHandler:手机哪一面朝上 152

5.4.2 CompassHandler 153

5.4.3 Pool类:重用相当有用 154

5.4.4 KeyboardHandler 156

5.4.5 触摸处理程序 160

5.4.6 AndroidInput:优秀的协调者 167

5.5 AndroidGraphics和AndroidPixmap 169

5.5.1 处理不同屏幕大小和分辨率的问题 169

5.5.2 AndroidPixmap:人物的像素 174

5.5.3 AndroidGraphics:满足绘图需求 174

5.5.4 AndroidFastRenderView 178

5.6 AndroidGame:合并所有内容 180

5.7 小结 184

第6章 Mr.Nom入侵Android 185

6.1 创建资源 185

6.2 建立项目 187

6.3 MrNomGame:主要活动 187

6.3.1 资源:便捷的资源存储 188

6.3.2 设置:跟踪用户的选项设置和高分榜 189

6.3.3 LoadingScreen:从磁盘获取资源 191

6.4 主菜单画面 192

6.5 HelpScreen类 195

6.6 高分榜画面显示 197

6.6.1 渲染数字 198

6.6.2 画面的实现 199

6.7 抽象 201

6.7.1 抽象Mr.Nom的世界:模型、视图、控制器 201

6.7.2 GameScreen类 211

6.8 小结 218

第7章 OpenGL ES介绍 219

7.1 OpenGL ES概述以及关注它的原因 219

7.1.1 编程模型:一个比喻 220

7.1.2 投影 221

7.1.3 规范化设备空间和视口 223

7.1.4 矩阵 223

7.1.5 渲染管道 224

7.2 开始之前 225

7.3 GLSurfaceView:从2008年开始,事情变得简单了 225

7.4 GLGame:实现游戏接口 228

7.5 绘制一个红色的三角形 235

7.5.1 定义视口 235

7.5.2 定义投影矩阵 235

7.5.3 指定三角形 238

7.5.4 综合示例 241

7.6 指定每个顶点的颜色 243

7.7 纹理映射:轻松地创建壁纸 246

7.7.1 纹理坐标 247

7.7.2 上传位图 248

7.7.3 纹理过滤 249

7.7.4 释放纹理 250

7.7.5 有用的代码片段 251

7.7.6 启用纹理 251

7.7.7 综合示例 251

7.7.8 Texture类 253

7.8 索引顶点:重用是有好处的 255

7.8.1 代码整合 256

7.8.2 Vertices类 258

7.9 半透明混合处理 260

7.10 更多图元:点、线、条和扇 263

7.11 2D变换:操作模型视图矩阵 264

7.11.1 世界空间和模型空间 264

7.11.2 再次讨论矩阵 265

7.11.3 第一个使用平移的示例 266

7.11.4 更多的变换 270

7.1 2性能优化 273

7.12.1 测量帧率 273

7.12.2 Android 1.5 平台下Hero的奇特案例 275

7.12.3 使OpenGL ES渲染如此慢的原因 275

7.12.4 移除不必要的状态改变 276

7.12.5 减小纹理大小意味着需要获取更少的像素 278

7.12.6 减少OpenGL ES/JNI方法的调用 278

7.12.7 绑定顶点的概念 279

7.12.8 写在结束之前 282

7.13 小结 283

第8章 2D游戏编程技巧 285

8.1 写在开始 285

8.2 向量 286

8.2.1 使用向量 286

8.2.2 一点三角学的知识 288

8.2.3 实现一个向量类 289

8.2.4 一个简单的用法示例 292

8.3 2D物理定律浅析 296

8.3.1 牛顿和欧拉,永远的好朋友 296

8.3.2 力和质量 297

8.3.3 理论上的运动 298

8.3.4 运动的实现 299

8.4 2D碰撞检测和对象表示 302

8.4.1 边界形状 303

8.4.2 构造边界形状 304

8.4.3 游戏对象的属性 306

8.4.4 宽阶段和窄阶段碰撞检测 307

8.4.5 一个详细的示例 313

8.5 2D照相机 324

8.5.1 Camera2D类 327

8.5.2 示例 328

8.6 纹理图集 329

8.7 纹理区域、精灵和批处理:隐藏OpenGL ES 334

8.7.1 TextureRegion类 334

8.7.2 SpriteBatcher类 335

8.8 精灵动画 343

8.8.1 Animation类 344

8.8.2 示例 345

8.9 小结 348

第9章 Super Jumper:一个2D OpenGL ES游戏 351

9.1 核心游戏机制 351

9.2 背景故事和艺术风格 352

9.3 画面和切换 352

9.4 定义游戏世界 353

9.5 创建资源 355

9.5.1 UI元素 355

9.5.2 使用点阵字体处理文本 356

9.5.3 游戏元素 358

9.5.4 用于救援的纹理图集 359

9.5.5 音乐与音效 360

9.6 实现Super Jumper 361

9.6.1 Assets类 361

9.6.2 Settings类 364

9.6.3 主活动 366

9.6.4 Font类 367

9.6.5 GLScreen 369

9.6.6 主菜单画面 369

9.6.7 帮助画面 372

9.6.8 高分画面 374

9.6.9 模拟类 377

9.6.10 游戏画面 390

9.6.11 WorldRenderer类 397

9.7 是否需要优化 401

9.8 小结 402

第10章 OpenGL ES:进入3D世界 403

10.1 准备工作 403

10.2 3D中的顶点 404

10.2.1 Vertices3:存储3D空间位置 404

10.2.2 示例 406

10.3 透视投影:越近则越大 409

10.4 z-buffer:化混乱为有序 411

10.4.1 完善上一个例子 412

10.4.2 混合:身后空无一物 413

10.4.3 z-buffer精度与z-fighting 416

10.5 定义3D网格 417

10.5.1 立方体:3D中的“Hello World” 417

10.5.2 一个示例 419

10.6 矩阵和变换 422

10.6.1 矩阵堆栈 423

10.6.2 用矩阵堆栈实现分层系统 425

10.6.3 木箱太阳系的简单实例 425

10.7 小结 433

第11章 3D编程技巧 435

11.1 准备工作 435

11.2 3D中的向量 436

11.3 OpenGL ES中的光照 440

11.3.1 光照的工作机制 440

11.3.2 光源 441

11.3.3 材质 442

11.3.4 OpenGL ES中如何对光照过程进行运算:顶点法线 442

11.3.5 实践 443

11.3.6 关于OpenGL ES中光照应用的一些建议 456

11.4 材质变换(Mipmapping) 456

11.5 简单的照相机 460

11.5.1 第一人称照相机或欧拉照相机 460

11.5.2 一个欧拉照相机的示例 463

11.5.3 跟随照相机 468

11.6 加载模块 470

11.6.1 Wavefront OBJ格式 470

11.6.2 OBJ加载器的实现 471

11.6.3 使用OBJ加载器 475

11.6.4 关于加载模型的一些建议 475

11.7 3D中的一些物理知识 476

11.8 碰撞检测与3D中的对象表达法 477

11.8.1 3D中的边界形状 477

11.8.2 边界球重叠测试 477

11.8.3 GameObject3D与Dynamic-GameObject3D 478

11.9 小结 479

第12章 Droid Invaders游戏 481

12.1 游戏的核心机制 481

12.2 游戏的故事背景与艺术风格 483

12.3 屏幕与场景切换 483

12.4 定义游戏世界 484

12.5 创建资源 485

12.5.1 用户界面的资源 485

12.5.2 游戏资源 486

12.5.3 音效与音乐 488

12.6 开始编写代码 488

12.7 Assets类 489

12.8 Settings类 492

12.9 主活动 493

12.10 主菜单 494

12.11 游戏设置画面 496

12.12 模拟类 499

12.12.1 Shield类 499

12.12.2 Shot类 500

12.12.3 Ship类 500

12.12.4 Invader类 502

12.12.5 World类 505

12.13 GameScreen类 510

12.14 WorldRender类 516

12.15 游戏优化 521

12.16 小结 522

第13章 发布游戏 523

13.1 关于测试 523

13.2 成为注册开发人员 524

13.3 给游戏的APK包签名 524

13.4 将游戏发布至Market 527

13.4.1 上传资源 527

13.4.2 产品详情 528

13.4.3 发布选项 528

13.4.4 发布 529

13.4.5 市场推广 529

13.5 开发人员控制台 529

13.6 小结 530

第14章 进阶内容 531

14.1 社交网络 531

14.2 位置识别 531

14.3 多玩家功能 532

14.4 OpenGL ES 2.0以及更多内容 532

14.5 框架及引擎 532

14.6 网络资源 534

14.7 结束语 534