简介
本书以Android手机游戏的开发为主题,结合真实的游戏案例向读者详
细介绍了Android平台下游戏开发的整个流程,同时在游戏开发的介绍过程
中还分享了笔者多年积累的开发技巧与经验。
全书分为两篇,共16章,第1篇以简单易懂的实例为依托,详细介绍了
Android的前台渲染技术、常用界面布局、网络开发、SQLite数据库的存取
、传感器应用的开发以及游戏中经常使用的人工智能等相关知识。第2篇详
细介绍了7个真实的游戏案例,涵盖了手机游戏中的7个不同种类,包括体
育类、益智类、滚屏动作类、棋牌类、3D物理传感器类、冒险类以及策略
类游戏等。每一个游戏都是按照实际的开发步骤进行介绍,并逐步地将
Android手机游戏的整个开发过程展现在读者面前。同时在源代码中还包含
了详细的注释,以尽量帮助读者掌握代码中的每一个细节。
本书的讲述由浅入深,从游戏开发的基础知识到开发大型游戏,结构
清晰、语言简洁,非常适合Android游戏初学者和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 driftball类的开发 365
14.4.1 driftball类的代码框架 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 gamedata类的开发 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
第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 driftball类的开发 365
14.4.1 driftball类的代码框架 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 gamedata类的开发 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
Android 2.0游戏开发实战宝典[电子资源.图书]
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!