《Android 4游戏入门经典 第3版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)策希纳著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302327721
  • 页数:554 页
图书介绍:本书提供了进阶为成功Android游戏开发者所需的全部知识,包括Android平板游戏开发的考虑因素。首先介绍游戏设计基本原理和编程基础知识,然后创建自己的基本游戏引擎和可以运行在Android、早期版本兼容智能手机,以及现在的平板的游戏app。书中提供了所需扩展的和编写自己Android游戏的全部内容。

第1章 日益流行的Android 1

1.1Android简介 1

1.2版本分裂 3

1.3谷歌的角色 3

1.3.1 Android开源项目 4

1.3.2 GooglePlay 4

1.3.3谷歌I/O 4

1.4 Android的功能和体系结构 5

1.4.1内核 5

1.4.2运行库和Dalvik虚拟机 6

1.4.3系统库 6

1.4.4应用程序框架 7

1.5软件开发工具包 7

1.6开发人员社区 8

1.7设备,设备,设备 9

1.7.1硬件 9

1.7.2设备的范围 10

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

1.9不同的手机游戏 14

1.9.1人手一台游戏机 14

1.9.2随时上网 14

1.9.3普通用户与游戏迷 15

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

1.10小结 16

第2章 从Android SDK开始 17

2.1搭建开发环境 17

2.1.1安装JDK 18

2.1.2安装Android SDK 18

2.1.3安装Eclipse 19

2.1.4安装ADT Eclipse插件 20

2.1.5 Eclipse快速浏览 21

2.1.6一些实用的Eclipse快捷键 22

2.2在Eclipse中新建项目及编写代码 23

2.2.1创建项目 23

2.2.2进一步分析项目 24

2.2.3使应用程序与所有Android版本兼容 25

2.2.4编写应用程序代码 25

2.3在设备或模拟器上运行应用程序 27

2.3.1连接设备 27

2.3.2创建一个Android虚拟设备 28

2.3.3安装高级模拟器功能 29

2.3.4运行应用程 31

2.4调试和分析应用程序 33

2.4.1 LogCat和DDMS 35

2.4.2使用ADB 37

2.5实用的第三方工具 38

2.6小结 39

第3章 游戏开发基础 41

3.1游戏类型 41

3.1.1休闲游戏 42

3.1.2益智游戏 43

3.1.3动作和街机游戏 44

3.1.4塔防游戏 46

3.1.5社交游戏 47

3.1.6游戏类型之外 48

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

3.2.1游戏的核心机制 49

3.2.2背景故事和艺术风格 50

3.2.3画面和切换 51

3.3代码:具体细节 55

3.3.1应用程序和窗口管理 55

3.3.2输入 56

3.3.3文件I/O 59

3.3.4音频 59

3.3.5图形 62

3.3.6游戏框架 71

3.4小结 77

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

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

4.1.1 <manifest>元素 80

4.1.2 <application>元素 81

4.1.3 <activity>元素 82

4.1.4 <uses-permission>元素 83

4.1.5 <uses-feature>元素 84

4.1.6 <uses-sdk>元素 86

4.1.7 8个简单步骤建立Android游戏项目 86

4.1.8 Google Play过滤器 87

4.1.9定义游戏图标 88

4.2针对有iOS/Xcode背景的读者 89

4.2.1 Eclipse/ADT和Xcode的对比 89

4.2.2查找和配置你的目标 89

4.2.3其他有用的东西 90

4.3 Android API基础 90

4.3.1创建测试项目 91

4.3.2活动的生命周期 94

4.3.3处理输入设备 99

4.3.4文件处理 113

4.3.5音频编程 119

4.3.6播放音效 120

4.3.7音乐流 122

4.3.8基本图形编程 126

4.4最佳实践 146

4.5小结 146

第5章 Android游戏开发框架 147

5.1制定计划 147

5.2 AndroidFileIO类 147

5.3 AndroidAudio、AndroidSound和AndroidMusic 149

5.4 AndroidInput和AccelerometerHandler 153

5.5 CompassHandler 155

5.5.1Pool类:重用相当有用 156

5.5.2KeyboardHandler 158

5.5.3触摸处理程序 162

5.5.4AndroidInput:优秀的协调者 168

5.6 AndroidGraphics和AndroidPixmap 170

5.6.1处理不同屏幕大小和分辨率的问题 170

5.6.2 AndroidPixmap 174

5.6.3 AndroidGraphics:满足绘图需求 175

5.6.4 AndroidFastRenderView 179

5.7 AndroidGame:合并所有内容 181

5.8小结 185

第6章 Mr.Nom入侵Android 187

6.1创建资源 187

6.2建立项目 189

6.3 MrNomGame:主活动 189

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

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

6.3.3 LoadingScrean:从磁盘获取资源 193

6.4主菜单画面 194

6.5HelpScreen类 197

6.6高分榜画面 199

6.6.1渲染数字 199

6.6.2画面的实现 201

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

6.7.1 Stain类 204

6.7.2 Snake和SnakePart类 205

6.7.3 World类 208

6.8GameScreen类 212

6.9小结 219

第7章 OpenGL ES介绍 221

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

7.1.1编程模型:一个比喻 222

7.1.2投影 223

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

7.1.4矩阵 225

7.1.5渲染管道 226

7.2准备工作 227

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

7.4 GLGame:实现游戏接口 230

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

7.5.1定义视口 236

7.5.2定义投影矩阵 237

7.5.3指定三角形 239

7.5.4综合示例 242

7.6指定每个顶点的颜色 245

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

7.7.1纹理坐标 248

7.7.2上传位图 249

7.7.3纹理过滤 250

7.7.4释放纹理 251

7.7.5有用的代码片段 252

7.7.6启用纹理 252

7.7.7综合示例 252

7.7.8 Texture类 254

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

7.8.1代码整合 258

7.8.2 Vertices类 259

7.9半透明混合处理 262

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

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

7.11.1世界空间和模型空间 266

7.11.2再次讨论矩阵 267

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

7.11.4更多的变换 271

7.12性能优化 274

7.12.1 测量帧率 274

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

7.12.3造成OpenGL ES渲染如此慢的原因 276

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

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

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

7.12.7绑定顶点的概念 280

7.12.8写在结束之前 283

7.13小结 284

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

8.1准备工作 285

8.2向量 286

8.2.1使用向量 286

8.2.2一点三角学的知识 288

8.2.3实现一个向量类 289

8.2.4一个简单的用法示例 293

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边界形状 302

8.4.2构造边界形状 304

8.4.3游戏对象的属性 306

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

8.4.5一个详细的示例 312

8.5 2D照相机 323

8.5.1 Camere2D类 326

8.5.2示例 327

8.6纹理图集 328

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

8.7.1 TextureRegion类 333

8.7.2 SpriteBatcher类 334

8.8精灵动画 342

8.8.1 Animation类 342

8.8.2示例 343

8.9小结 347

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

9.1核心游戏机制 349

9.2背景故事和艺术风格 350

9.3画面和切换 350

9.4定义游戏世界 351

9.5创建资源 353

9.5.1UI元素 353

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

9.5.3游戏元素 356

9.5.4纹理图集 357

9.5.5音乐与音效 358

9.6实现Super Jumper 359

9.6.1 Assets类 360

9.6.2 Settings类 362

9.6.3主活动 364

9.6.4 Font类 365

9.6.5 GLScreen类 366

9.6.6主菜单画面 367

9.6.7帮助画面 369

9.6.8高分画面 372

9.6.9模拟类 374

9.6.10游戏画面 387

9.6.11 WorldRenderer类 394

9.7是否需要优化 397

9.8小结 399

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

10.1准备工作 401

10.2 3D中的顶点 402

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

10.2.2示例 404

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

10.4m z-buffer:化混乱为有序 409

10.4.1完善上一个例子 410

10.4.2混合:身后空无一物 411

10.4.3 z-buffer精度与z-fighting 413

10.5定义3D网格 414

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

10.5.2一个示例 416

10.6矩阵和变换 419

10.6.1矩阵堆栈 419

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

10.6.3一个简单的照相机系统 427

10.7小结 430

第11章 3D编程技巧 431

11.1准备工作 431

11.2 3D中的向量 432

11.3 OpenGL ES中的光照 436

11.3.1光照的工作机制 436

11.3.2光源 437

11.3.3材质 438

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

11.3.5实践 439

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

11.4材质变换 452

11.5简单的照相机 456

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

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

11.5.3跟随照相机 463

11.6加载模型 465

11.6.1 Wavefront OBJ格式 466

11.6.2 OBJ加载器的实现 466

11.6.3使用OBJ加载器 471

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

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

11.8 3D中的碰撞检测与对象表示 472

11.8.1 3D中的边界形状 472

11.8.2边界球重叠测试 473

11.8.3 GameObject3D与 DynamicGameObject3D 474

11.9小结 475

第12章 Android Invaders游戏 477

12.1游戏的核心机制 477

12.2故事背景与艺术风格 478

12.3画面与切换 479

12.4定义游戏世界 480

12.5创建资源 480

12.5.1用户界面资源 481

12.5.2游戏资源 482

12.5.3音效与音乐 483

12.6开始编写代码 483

12.7 Assets类 484

12.8 Settings类 487

12.9主活动 488

12.10主菜单画面 489

12.11游戏设置画面 491

12.12模拟类 494

12.12.1 Shield类 494

12.12.2 Shot类 494

12.12.3 Ship类 495

12.12.4 Invader类 497

12.12.5 World类 499

12.13 GameScreen类 505

12.14 WorldRender类 511

12.15 游戏优化 516

12.16小结 517

第13章 NDK原生编程 519

13.1 Android NDK的含义 519

13.2 Java原生接口 520

13.3安装NDK 521

13.4安装NDK Android项目 522

13.5创建Java原生方法 522

13.6创建C/C++头文件和实现 523

13.7构建共享库 525

13.8代码整合 527

13.9小结 532

第14章 营销和货币化 533

14.1将游戏货币化 533

14.1.1广告 534

14.1.2游戏内的产品 535

14.1.3虚拟货币 535

14.1.4卖还是不卖 536

14.1.5授权 536

14.2让你的游戏被发现 537

14.2.1社交网络集成 537

14.2.2发现服务 537

14.2.3博客和传统的网络媒体 538

14.3设计时就考虑盈利 538

14.4设计时就考虑被发现 539

14.5小结 539

第15章 发布游戏 541

15.1关于测试 541

15.2成为注册开发人员 542

15.3给游戏的APK签名 543

15.4将游戏发布至GooglePlay 545

15.4.1上传资源 545

15.4.2产品详情 546

15.4.3发布选项 547

15.4.4 APK文件管理 548

15.4.5发布 548

15.5开发人员控制台 549

15.6小结 549

第16章 进阶内容 551

16.1位置识别 551

16.2多玩家功能 551

16.3 OpenGL ES 2.0/3.0以及更多内容 551

16.4框架及引擎 552

16.5网络资源 553

16.6结束语 554