《Android 2.0游戏开发实战宝典》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:吴亚锋,苏亚光编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115227508
  • 页数:500 页
图书介绍:本书首先讲解Android开发基础,然后讲解各类游戏的设计方法,通过7个完整的项目实例使读者掌握主流的android游戏开发。

第1篇 Android游戏兵法——谋攻篇第1章 Android平台简介 2

1.1 Android的来龙去脉 2

1.2 掀起Android的盖头来 2

1.2.1 选择Android的理由 2

1.2.2 Android的应用程序框架 4

1.3 Android开发环境的搭建 6

1.3.1 SDK的下载及安装 7

1.3.2 Eclipse集成开发环境的搭建 7

1.3.3 虚拟设备的创建与模拟器的运行 10

1.3.4 第一个Android程序 12

1.3.5 Android程序的监控与调试 16

1.4 小结 17

第2章 Android游戏开发之前台渲染 18

2.1 创建Android用户界面 18

2.1.1 布局管理 18

2.1.2 常用控件及其事件处理 24

2.2 图形与动画在Android中的实现 27

2.2.1 简单图形的绘制 27

2.2.2 贴图的艺术 28

2.2.3 自定义动画的播放 30

2.3 Android平台下的多媒体开发 33

2.3.1 音频的播放 33

2.3.2 视频的播放 36

2.3.3 Camera图像采集 39

2.4 小结 41

第3章 Android游戏开发之交互式通信 42

3.1 Android应用程序的基本组件 42

3.1.1 Activity组件 42

3.1.2 Service组件 44

3.1.3 Broadcast Receiver组件 45

3.1.4 Content Provider组件 46

3.1.5 AndroidManifest.xml文件简介 47

3.2 应用程序的内部通信 50

3.2.1 Handler类简介 50

3.2.2 使用Handler进行内部通信 51

3.3 应用程序组件之间的通信 53

3.3.1 Intent类简介 54

3.3.2 IntentFilter类简介 55

3.3.3 示例1:与Android系统组件通信 56

3.3.4 示例2:应用程序组件间通信示例Activity部分的开发 58

3.3.5 示例3:应用程序组件间通信示例Service部分的开发 60

3.4 小结 62

第4章 Android游戏开发之数据存储和传感器 63

4.1 数据存储在Android平台的实现 63

4.1.1 私有文件夹文件的写入与读取 63

4.1.2 读取Resources和Assets中的文件 66

4.1.3 轻量级数据库SQLite简介 69

4.1.4 SQLite的使用示例 72

4.1.5 Content Provider的使用 75

4.1.6 Preferences的使用 79

4.2 Android平台下传感器应用的开发 82

4.2.1 传感器应用的开发流程 82

4.2.2 常用传感器简介 83

4.2.3 传感器应用开发示例 85

4.2.4 使用SensorSimulator模拟传感器变化 88

4.2.5 使用新版本的API开发传感器应用 92

4.3 小结 94

第5章 Android游戏开发之网络编程 95

5.1 基于Socket套接字的网络编程 95

5.2 基于HTTP协议的网络编程 99

5.2.1 通过URL获取网络资源 99

5.2.2 在Android中解析XML 101

5.3 Android平台下的Google Map 101

5.3.1 GenPoint与MapView的搭配使用 102

5.3.2 LocationListener的使用 106

5.4 其他网络通信方式 108

5.4.1 使用WiFi进行开发 108

5.4.2 借助于蓝牙(Bluetooth)技术进行开发 109

5.5 小结 109

第6章 不一样的游戏,不一样的体验 110

6.1 射击类游戏 110

6.1.1 游戏玩法 110

6.1.2 视觉效果 111

6.1.3 游戏内容设计 111

6.2 竞速类游戏 112

6.2.1 游戏玩法 112

6.2.2 视觉效果 113

6.2.3 游戏内容设计 113

6.3 益智类游戏 113

6.3.1 游戏玩法 114

6.3.2 视觉效果 114

6.3.3 游戏内容设计 115

6.4 角色扮演游戏 115

6.4.1 游戏玩法 115

6.4.2 视觉效果 116

6.4.3 游戏内容设计 116

6.5 闯关动作类游戏 117

6.5.1 游戏玩法 118

6.5.2 视觉效果 118

6.5.3 游戏内容设计 118

6.6 冒险游戏 118

6.6.1 游戏玩法 119

6.6.2 视觉效果 120

6.6.3 游戏内容设计 120

6.7 策略游戏 120

6.7.1 游戏玩法 120

6.7.2 视觉效果 121

6.7.3 游戏内容设计 122

6.8 养成类游戏 122

6.8.1 游戏玩法 122

6.8.2 视觉效果 123

6.8.3 游戏内容设计 123

6.9 经营类游戏 124

6.9.1 游戏玩法 125

6.9.2 视觉效果 125

6.9.3 游戏内容设计 125

6.10 体育类游戏 125

6.10.1 游戏玩法 126

6.10.2 视觉效果 126

6.10.3 游戏内容设计 127

6.11 小结 127

第7章 游戏背后的数学与物理 128

7.1 编程中经常用到的数理知识 128

7.1.1 数学方面 128

7.1.2 物理方面 130

7.2 物理小球在游戏中的应用 131

7.2.1 开发运动体Movable类的代码 131

7.2.2 开发物理引擎BallThread类的代码 133

7.2.3 开发BallView类的代码 136

7.2.4 开发DrawThread类的代码 139

7.2.5 开发Activity部分的代码 141

7.3 粒子系统 142

7.3.1 开发粒子对象Particle类和粒子集合ParticleSet类的代码 142

7.3.2 开发焰火粒子系统的物理引擎ParticleThread类的代码 144

7.3.3 开发视图类ParticleView及其相关类的代码 146

7.3.4 开发程序Activity部分的代码 148

7.3.5 将焰火粒子系统改为瀑布粒子系统 149

7.4 碰撞检测技术 150

7.4.1 碰撞检测技术基础 150

7.4.2 游戏中实体对象之间的碰撞检测 151

7.4.3 游戏实体对象与环境之间的碰撞检测 155

7.5 小结 156

第8章 游戏中的人工智能 157

8.1 让怪物聪明起来——Android中的路径搜索 157

8.1.1 路径搜索示例基本框架的搭建 157

8.1.2 路径搜索示例的控制面板实现 160

8.1.3 路径搜索示例GameView的实现 164

8.1.4 深度优先路径搜索DFS 167

8.1.5 广度优先路径搜索BFS 170

8.1.6 Dijkstra路径搜索 173

8.1.7 用A*算法优化搜索 177

8.2 有限状态机 179

8.2.1 何为有限状态机 179

8.2.2 有限状态机的简单实现 180

8.2.3 有限状态机的OO实现 186

8.3 小结 188

第9章 游戏开发小秘技 189

9.1 地图编辑器与关卡设计 189

9.1.1 关卡地图的重要性 189

9.1.2 图片分割界面的实现 192

9.1.3 地图设计界面的实现 197

9.2 游戏中的模糊逻辑 203

9.2.1 模糊的才是真实的 203

9.2.2 如何在Android中将游戏模糊化 205

9.3 游戏的基本优化技巧 207

9.3.1 代码上的小艺术 207

9.3.2 Android中的查找表技术 208

9.3.3 游戏的感觉和性能问题 210

9.4 小结 211

第2篇 Android游戏兵法——实战篇第10章 体育游戏——疯狂足球 214

10.1 游戏背景及功能概述 214

10.1.1 背景概述 214

10.1.2 功能简介 214

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

10.2.1 游戏的策划 217

10.2.2 疯狂足球游戏开发的准备工作 217

10.3 游戏的架构 218

10.3.1 游戏的总体架构 219

10.3.2 游戏的类结构 219

10.4 游戏程序Activity类的开发 221

10.4.1 FootballActivity框架搭建 221

10.4.2 向FootballActivity添加主要方法 223

10.5 游戏欢迎界面的开发 224

10.5.1 CustomGallery类的开发 224

10.5.2 WelcomeView类的开发 226

10.5.3 WelcomeThread类和WelcomeDrawThread类的开发 228

10.5.4 用户交互事件的处理 229

10.6 游戏加载界面的开发 231

10.6.1 LoadingView的开发 231

10.6.2 开发和完善Activity中的方法 232

10.7 游戏主界面的开发 234

10.7.1 GameView类框架的开发 234

10.7.2 GameView主要初始化方法的开发 236

10.7.3 GameView绘制方法的开发 237

10.8 运动控制模块的开发 238

10.8.1 玩家球员的运动控制 238

10.8.2 AI球员的运动控制 239

10.8.3 PlayerMoveThread类的开发 240

10.8.4 Player和Ball类的代码框架 242

10.8.5 游戏的碰撞检测与处理 243

10.9 奖励物品模块的开发 247

10.9.1 Bonus和IceBonus类的开发 247

10.9.2 BonusManager类 249

10.10 游戏的优化与改进 250

第11章 益智游戏——推箱子 251

11.1 游戏的背景及功能概述 251

11.1.1 背景概述 251

11.1.2 功能简介 252

11.2 游戏的策划及准备工作 253

11.2.1 游戏的策划 253

11.2.2 Android平台下游戏的准备工作 253

11.3 游戏的架构 255

11.3.1 各个类的简要介绍 255

11.3.2 游戏的框架简介 256

11.4 欢迎动画界面的设计与实现 257

11.4.1 PushBoxActivity类框架的搭建 257

11.4.2 欢迎界面WelcomeView类的实现 258

11.4.3 刷帧线程WelcomeViewDrawThread的实现 260

11.4.4 动画线程WelcomeViewGoThread的实现 261

11.5 菜单界面的设计与实现 263

11.6 游戏界面的框架设计 266

11.7 角色相关类的开发 268

11.7.1 地图类MapList的实现 268

11.7.2 角色类MySprite的实现 269

11.7.3 键盘监听线程KeyThread的实现 271

11.7.4 角色移动线程SpriteMoveThread的实现 274

11.7.5 换帧线程SpriteThread的实现 275

11.8 游戏界面的完善 277

11.8.1 箱子移动线程BoxThread的实现 277

11.8.2 刷帧线程GameViewDrawThread的实现 279

11.8.3 游戏界面GameView的完善 280

11.9 游戏的优化与改进 283

第12章 滚屏动作游戏——太空保卫战 285

12.1 游戏的背景及功能概述 285

12.1.1 背景概述 285

12.1.2 功能简介 285

12.2 游戏的策划及准备工作 287

12.2.1 游戏的策划 287

12.2.2 Android平台下游戏的准备工作 288

12.3 游戏的架构 289

12.3.1 各个类的简要介绍 289

12.3.2 游戏的框架简介 291

12.4 辅助界面相关类的实现 292

12.4.1 PlaneActivity类的实现 292

12.4.2 欢迎界面WelcomeView类 293

12.4.3 其他辅助界面的介绍 297

12.5 游戏界面的框架设计 300

12.6 游戏实体相关类的实现 303

12.6.1 飞机Plane类的实现 303

12.6.2 敌机EnemyPlane类的实现 307

12.6.3 子弹Bullet类的实现 308

12.6.4 其他相关类的实现 310

12.7 游戏界面的完善 312

12.7.1 地图类Maps的实现 312

12.7.2 背景滚动类GameViewBackGroundThread的实现 313

12.7.3 物体移动线程MoveThread的实现 315

12.7.4 键盘监听线程KeyThread的实现 316

12.7.5 图片初始化方法initBitmap的实现 318

12.7.6 绘制方法onDraw的实现 319

12.8 游戏的优化与改进 321

第13章 棋牌游戏——中国象棋人机对弈 323

13.1 游戏的背景及功能概述 323

13.1.1 背景概述 323

13.1.2 功能简介 323

13.2 游戏的策划及准备工作 325

13.2.1 游戏的策划 325

13.2.2 Android平台下游戏的准备工作 325

13.3 游戏的架构 327

13.3.1 各个类的简要介绍 327

13.3.2 游戏的框架简介 327

13.4 共有类ChessActivity的实现 328

13.5 辅助界面相关类的实现 330

13.5.1 欢迎界面WelcomeView的介绍 330

13.5.2 欢迎界面动画生成类WelcomeViewThread的介绍 332

13.5.3 菜单界面MenuView的介绍 333

13.5.4 帮助界面HelpView的介绍 335

13.6 游戏界面相关类的实现 337

13.6.1 游戏界面GameView的框架介绍 337

13.6.2 走法类ChessMove的介绍 340

13.6.3 思考时间线程TimeThread的介绍 341

13.7 象棋规则类的实现 341

13.7.1 象棋规则类GuiZe的框架 342

13.7.2 走法判断方法canMove的架构 342

13.7.3 帅、士、象、兵的规则介绍 344

13.7.4 将、车、马、炮的规则介绍 346

13.7.5 走法产生方法allPossibleMoves的架构 351

13.7.6 走法产生方法allPossibleMoves的完善 352

13.8 游戏界面的完善 353

13.8.1 GameView类的构造方法的完善 353

13.8.2 绘制方法onDraw的完善 353

13.8.3 屏幕监听方法onTouchEvent的完善 355

13.9 游戏的优化与改进 358

第14章 3D物理传感器游戏——小球快跑 359

14.1 游戏背景及功能概述 359

14.1.1 背景概述 359

14.1.2 功能简介 359

14.2 游戏的策划及准备工作 361

14.2.1 游戏的策划 361

14.2.2 小球快跑游戏开发的准备工作 362

14.3 游戏的架构 363

14.3.1 游戏的总体架构 363

14.3.2 游戏的类结构 363

14.4 DriffBall类的开发 365

14.4.1 DriffBall类的代码框架 365

14.4.2 DriftBall类的主要成员方法的实现 366

14.5 游戏主菜单的开发 368

14.5.1 WelcomeView类的代码框架 368

14.5.2 WelcomeView类主要成员方法 369

14.5.3 WelcomeThread类的开发 371

14.5.4 菜单界面的用户交互事件处理 372

14.6 游戏界面模块的开发 373

14.6.1 GameView的成员变量 373

14.6.2 GameView的成员方法简介 374

14.6.3 GameThread类的代码框架 375

14.6.4 GameMenuThread类的开发 376

14.6.5 用户交互事件处理 377

14.7 游戏中各个图层的开发 378

14.7.1 地图图层的开发 378

14.7.2 其他图层的开发与实现 379

14.8 游戏后台逻辑的开发 383

14.8.1 小球的运动控制 383

14.8.2 小球的碰撞检测 384

14.8.3 Cannon和Missile类的开发 387

14.9 传感器计算模块的开发 390

14.9.1 BallListener类的开发 390

14.9.2 RotateUtil类的代码框架 391

14.9.3 RotateUtil类的开发 393

14.10 游戏的优化与改进 396

第15章 冒险游戏——胜利大逃亡 397

15.1 游戏背景及功能概述 397

15.1.1 游戏背景概述 397

15.1.2 功能简介 397

15.2 游戏的策划及准备工作 400

15.2.1 游戏的策划 400

15.2.2 大逃亡游戏的准备工作 400

15.3 游戏的架构 401

15.3.1 游戏的总体架构 401

15.3.2 游戏的类结构 401

15.4 游戏工具类的开发 403

15.4.1 BitmapManager类的开发 403

15.4.2 ConstantUtil类的开发 405

15.5 RunActivity类和加载界面的开发 406

15.5.1 RunActivity类的代码框架 406

15.5.2 RunActivity类主要方法的开发 406

15.5.3 ProgressView类的开发 409

15.6 欢迎界面的开发 410

15.6.1 WelcomeView的代码框架 410

15.6.2 WelcomeView类的主要成员方法的开发 412

15.6.3 WelcomeThread类的开发 414

15.6.4 WelcomeView的用户交互事件 416

15.7 游戏实体模块的开发 418

15.7.1 Sprite类的开发 418

15.7.2 Hero和Monster类的代码框架 420

15.8 游戏地图模块的开发 422

15.8.1 MyDrawable类的开发 422

15.8.2 GarneData类的开发 422

15.8.3 Layer类的开发 424

15.8.4 LayerList类的开发 425

15.9 游戏界面模块的开发 426

15.9.1 GameView代码框架的开发 426

15.9.2 游戏无级滚屏的实现 427

15.9.3 GameView类doDraw方法的开发 428

15.10 游戏后台逻辑模块的开发 430

15.10.1 怪物追踪算法的设计与实现 430

15.10.2 键盘监听线程的开发 432

15.11 游戏的优化与改进 433

第16章 策略游戏——回到战国 435

16.1 游戏的背景及功能概述 435

16.1.1 背景概述 435

16.1.2 功能简介 435

16.2 游戏的策划及准备工作 440

16.2.1 游戏的策划 440

16.2.2 Android平台下游戏的准备工作 440

16.3 游戏的架构 442

16.3.1 游戏的模块架构 442

16.3.2 游戏各个类的简要介绍 443

16.4 地图设计器的开发 445

16.4.1 底层地图设计器的开发 445

16.4.2 上层地图设计器的开发 450

16.5 Activity和游戏工具类的开发 450

16.5.1 HDZGActivity类的介绍 451

16.5.2 公式封装类GameFormula类的介绍 453

16.5.3 常量工具类ConstantUtil的介绍 455

16.6 数据存取模块的开发 456

16.6.1 城池信息以及地图层信息的封装类 456

16.6.2 数据存取相关类的介绍 459

16.7 英雄角色模块的开发 463

16.7.1 Hero类的代码框架 463

16.7.2 HeroGoThread类的开发 466

16.7.3 HeroBackDataThread类的开发 468

16.8 表示层界面模块的开发 468

16.8.1 ScreenRollView类的开发 469

16.8.2 ScreenRollThread线程类的开发 470

16.8.3 游戏界面GameView的框架介绍 471

16.8.4 游戏界面绘制方法onDraw的介绍 474

16.8.5 游戏界面屏幕监听方法onTouch的介绍 476

16.8.6 游戏界面后台线程GameViewThread的介绍 477

16.9 管理面板模块的开发 478

16.9.1 人物属性面板类ManPanelView的开发 478

16.9.2 城池管理面板类CityManageView的开发 483

16.10 地图中可遇实体模块的开发 486

16.10.1 MyDrawable类的开发 487

16.10.2 MyMeetableDrawable类的开发 488

16.10.3 ForestDrawable类的开发 489

16.10.4 可遇实体对象的调用流程 491

16.11 英雄技能模块的开发 493

16.11.1 Skill类的开发 493

16.11.2 LumberSkill的类的开发 494

16.11.3 SuiXinBuSkill的类的开发 494

16.12 游戏提示模块的开发 495

16.12.1 GameAlert类的开发 495

16.12.2 PlainAlert类的开发 496

16.12.3 FoodAlert类的开发 497

16.12.4 HeroBackDataThread中对FoodAlert的调用 499

16.13 游戏的优化与改进 500