专题栏目:ARVRMR虚拟现实

《Unity 2017经典游戏开发教程 算法分析与实现》

书籍简介:

在游戏开发学习中,借鉴经典游戏的开发思路和算法是快速提升开发与设计水平的有效捷径,这种学习的路径也是明智而高效的。本书精选了18个广受欢迎的经典游戏案例进行讲解剖析,包含打地鼠、俄罗斯方块、打砖块、三消、翻牌子、连连看、拼图、推箱子、炸弹人、华容道、横板跑酷、扫雷、贪吃蛇、五子棋、跳棋、吃豆人、斗地主、坦克大战等游戏。本书游戏的实现采用了Unity 2017版软件,该软件是目前世界范围内使用*广泛的游戏开发与虚拟现实开发平台之一,界面友好,功能强大,有适合不同学习阶段和不同开发需求的对应版本。

本书不仅详细介绍了Unity的软件操作基础与游戏开发操作流程,而且对每个游戏案例的开发思路、算法分析、程序实现等都有详尽的讲解,非常适合对游戏开发、虚拟现实开发设计感兴趣的初中级读者,也适合游戏相关专业作为教材使用。

作者简介:

张帆

具有多年游戏开发和教学经验,浙江传媒学院优秀教师,研究方向包括:数字娱乐与交互设计、游戏设计,已出版教材:《Unity5.X游戏开发基础》、《 游戏策划与设计》等。

出版时间:

2018年10月

章节目录:

第1章 熟悉Unity软件的操作………………1
1.1 可多平台发布的Unity游戏引擎 ……………………1
1.2 Unity游戏引擎的下载和安装 1
1.2.1 Unity的下载 ……………………2
1.2.2 Unity的安装 ……………………3
1.2.3 Unity的注册 ……………………4
1.2.4 启动Unity ………………………4
1.3 认识Unity的编辑界面 ……5
1.3.1 软件标题栏 ……………………5
1.3.2 主菜单 …………………………6
1.3.3 Project项目资源窗口 …………16
1.3.4 Hierarchy层级窗口 ……………24
1.3.5 Scene场景窗口 …………………25
1.3.6 Inspector组件属性面板 ………37
1.3.7 Game游戏预览窗口 ……………42
1.3.8 Console控制台 …………………43
1.4 自定义窗口布局 ……………44
1.4.1 使用Unity内置的窗口布局功能 44
1.4.2 自定义窗口布局 ………………46
1.5 Unity中定义的重要概念 ……47
1.5.1 资源(Assets) …………………47
1.5.2 工程(Project) ………………48
1.5.3 场景(Scenes) ………………48
1.5.4 游戏对象(GameObject) ……48
1.5.5 组件(Component) …………48
1.5.6 脚本(Scripts) ………………49
1.5.7 预置(Prefabs) ………………49
第2章 打地鼠……………50
2.1 游戏简介 ……………………50
2.2 游戏规则 ……………………50
2.3 程序思路 ……………………50
2.3.1 洞口的排列 ……………………50
2.3.2 地鼠出现频率 …………………51
2.3.3 单个地鼠设置 …………………51
2.3.4 游戏时间和分数 ………………51
2.3.5 游戏流程图 ……………………52
2.4 程序实现 ……………………52
2.4.1 前期准备 ………………………52
2.4.2 设置洞口 ………………………53
2.4.3 单只地鼠的出现与消失 ………56
2.4.4 地鼠的随机出现和出现频率 …59
2.4.5 时间、分数和其他 ……………64
第3章 俄罗斯方块………70
3.1 游戏简介 ……………………70
3.2 游戏规则 ……………………70
3.3 游戏实现思路 ………………72
3.3.1 随机生成方块 …………………72
3.3.2 地图的生成 ……………………72
3.3.3 判断方块是否都在边界内 ……72
3.3.4 判断是否碰到其他方块 ………73
3.3.5 检查是否满行 …………………73
3.3.6 删除填满的行 …………………73
3.3.7 提示下一个方块组 ……………73
3.3.8 结束判定 ………………………74
3.3.9 游戏流程图 ……………………74
3.4 游戏程序实现 ………………75
3.4.1 前期准备 ………………………75
3.4.2 制作场景 ………………………76
3.4.3 生成方块组与方块组下落 ……79
3.4.4 边界判断 ………………………83
3.4.5 删除一行方块 ………………… 92
3.4.6 结束判定 ……………………… 97
3.4.7 细节完善 ……………………… 98
第4 章 打砖块…………… 102
4.1 游戏简介 …………………… 102
4.2 游戏规则 …………………… 102
4.3 程序思路 …………………… 103
4.3.1 地图生成 ……………………… 103
4.3.2 砖块控制 ……………………… 103
4.3.3 小球控制 ……………………… 103
4.3.4 游戏流程图 …………………… 104
4.4 程序实现 …………………… 105
4.4.1 前期准备 ……………………… 105
4.4.2 游戏场景设定 ………………… 106
4.4.3 横板控制 ……………………… 107
4.4.4 小球控制 ……………………… 109
4.4.5 砖块的生成及控制 …………… 112
4.4.6 道具的控制 …………………… 117
第5 章 三消 …………… 123
5.1 游戏简介 …………………… 123
5.2 游戏规则 …………………… 123
5.3 程序思路 …………………… 124
5.3.1 地图生成 ……………………… 124
5.3.2 消除检测 ……………………… 124
5.3.3 消除算法 ……………………… 125
5.3.4 宝石掉落 ……………………… 126
5.3.5 游戏流程图 …………………… 127
5.4 程序实现 …………………… 128
5.4.1 前期准备 ……………………… 128
5.4.2 游戏场景设定 ………………… 130
5.4.3 地图生成 ……………………… 131
5.4.4 点选响应及宝石交换 ………… 135
5.4.5 宝石的消除判定及宝石的消除 140
第6 章 翻牌子…………… 149
6.1 游戏简介 …………………… 149
6.2 游戏规则 …………………… 149
6.3 程序思路 …………………… 149
6.3.1 搭建卡片池 …………………… 149
6.3.2 卡片状态 ……………………… 150
6.3.3 游戏计分 ……………………… 151
6.3.4 游戏流程图 …………………… 151
6.4 程序实现 …………………… 151
6.4.1 前期准备 ……………………… 151
6.4.2 游戏场景设定 ………………… 152
6.4.3 卡片池的生成 ………………… 154
6.4.4 卡片图案的随机生成 ………… 156
6.4.5 卡片的配对 …………………… 163
6.4.6 步数、分数和重新开始 ……… 166
第7 章 连连看…………… 173
7.1 游戏简介 …………………… 173
7.2 游戏规则 …………………… 173
7.3 程序思路 …………………… 174
7.3.1 地图生成 ……………………… 174
7.3.2 消除检测 ……………………… 175
7.3.3 画线 …………………………… 176
7.3.4 游戏流程图 …………………… 177
7.4 程序实现 …………………… 177
7.4.1 前期准备 ……………………… 177
7.4.2 制作游戏场景 ………………… 178
7.4.3 地图创建 ……………………… 179
7.4.4 点选判定 ……………………… 183
7.4.5 消除判定 ……………………… 185
7.4.6 画线 …………………………… 194
7.4.7 道具实现 ……………………… 199
第8 章 拼图……………… 203
8.1 游戏简介 …………………… 203
8.2 游戏规则 …………………… 203
8.3 游戏思路 …………………… 203
8.3.1 原图与碎片的对应关系 ……… 203
8.3.2 鼠标拖曳移动碎片 …………… 204
8.3.3 正确判断 ……………………… 205
8.3.4 获胜判断 ……………………… 205
8.3.5 游戏流程图 …………………… 205
8.4 游戏实现 …………………… 206
8.4.1 前期准备 ……………………… 206
8.4.2 制作游戏场景 ………………… 208
8.4.3 碎片生成 ……………………… 210
8.4.4 鼠标事件 ……………………… 211
8.4.5 游戏结束判断 ………………… 215
第9 章 推箱子…………… 217
9.1 游戏简介 …………………… 217
9.2 游戏规则 …………………… 217
9.3 程序思路 …………………… 217
9.3.1 地图生成 ……………………… 217
9.3.2 角色移动 ……………………… 218
9.3.3 箱子移动 ……………………… 219
9.3.4 角色及箱子移动逻辑 ………… 220
9.3.5 游戏获胜判定 ………………… 221
9.3.6 游戏流程图 …………………… 221
9.4 程序实现 …………………… 222
9.4.1 前期准备 ……………………… 222
9.4.2 制作游戏场景 ………………… 223
9.4.3 地图生成 ……………………… 224
9.4.4 角色的移动 …………………… 228
9.4.5 箱子的移动 …………………… 235
9.4.6 游戏胜利判定 ………………… 239
9.4.7 动画的加入 …………………… 241
第10 章 炸弹人 ………… 245
10.1 游戏简介 …………………… 245
10.2 游戏规则 …………………… 245
10.3 程序思路 …………………… 246
10.3.1 地图生成 ……………………… 246
10.3.2 炸弹管理 ……………………… 247
10.3.3 怪物管理 ……………………… 247
10.3.4 游戏管理 ……………………… 248
10.3.5 游戏流程图 …………………… 248
10.4 程序实现 …………………… 249
10.4.1 前期准备 ……………………… 249
10.4.2 地图制作 ……………………… 249
10.4.3 开始制作 ……………………… 250
10.4.4 玩家操控 ……………………… 258
10.4.5 墙体摧毁 ……………………… 263
10.4.6 怪物制作 ……………………… 265
第11 章 华容道 ………… 270
11.1 游戏简介 …………………… 270
11.2 游戏规则 …………………… 270
11.3 游戏程序实现思路 ………… 271
11.3.1 棋子 …………………………… 271
11.3.2 棋盘 …………………………… 271
11.3.3 移动棋子 ……………………… 272
11.3.4 结束判定 ……………………… 277
11.3.5 游戏流程图 …………………… 277
11.4 游戏实现 …………………… 278
11.4.1 前期准备 ……………………… 278
11.4.2 制作游戏场景 ………………… 279
11.4.3 生成棋子 ……………………… 281
11.4.4 棋子移动 ……………………… 284
11.4.5 游戏结束判定 ………………… 309
第12 章 横版跑酷 ……… 312
12.1 游戏简介 …………………… 312
12.2 游戏规则 …………………… 313
12.3 程序思路 …………………… 313
12.3.1 地图 …………………………… 313
12.3.2 金币和道具 …………………… 313
12.3.3 障碍物 ………………………… 314
12.3.4 玩家 …………………………… 314
12.3.5 金币分数和已经前进距离的显示 ……………… 314
12.3.6 游戏流程图 …………………… 314
12.4 工程实现 …………………… 315
12.4.1 前期准备 ……………………… 315
12.4.2 制作游戏场景 ………………… 317
12.4.3 玩家控制 ……………………… 319
12.4.4 路段上金币、道具和障碍物的生成 ………………… 328
12.4.5 显示前进距离和金币 ………… 332
第13 章 扫雷 …………… 335
13.1 游戏简介 …………………… 335
13.2 游戏规则 …………………… 335
13.2.1 扫雷的布局 …………………… 335
13.2.2 扫雷的基本操作 ……………… 336
13.2.3 游戏结束 ……………………… 337
13.3 程序思路 …………………… 337
13.3.1 雷区绘制 ……………………… 337
13.3.2 左键单击 ……………………… 337
13.3.3 右键单击 ……………………… 338
13.3.4 左右键双击 …………………… 338
13.3.5 游戏结束 ……………………… 339
13.3.6 游戏流程图 …………………… 339
13.4 程序实现 …………………… 340
13.4.1 前期准备 ……………………… 340
13.4.2 制作游戏场景 ………………… 340
13.4.3 雷区的生成 …………………… 341
13.4.4 地雷随机分布 ………………… 344
13.4.5 方块关联 ……………………… 352
13.4.6 鼠标点击 ……………………… 356
13.4.7 游戏失败 ……………………… 360
13.4.8 剩余地雷数、时间和笑脸管理 … 362
第14 章 贪吃蛇 ………… 370
14.1 游戏简介 …………………… 370
14.2 游戏规则 …………………… 371
14.3 程序思路 …………………… 371
14.3.1 地图的生成 …………………… 371
14.3.2 食物出现 ……………………… 371
14.3.3 蛇的数据结构 ………………… 371
14.3.4 贪吃蛇移动算法 ……………… 371
14.3.5 蛇的增长 ……………………… 372
14.3.6 判断蛇头是否撞到了自身 …… 372
14.3.7 边界判断 ……………………… 372
14.3.8 游戏流程图 …………………… 372
14.4 游戏程序实现 ……………… 373
14.4.1 前期准备 ……………………… 373
14.4.2 制作场景 ……………………… 374
14.4.3 生成食物 ……………………… 376
14.4.4 蛇的移动 ……………………… 378
14.4.5 蛇的长大及移动 ……………… 382
14.4.6 累计分数 ……………………… 384
14.4.7 结束判定 ……………………… 386
第15 章 五子棋 ………… 388
15.1 游戏简介 …………………… 388
15.2 游戏规则 …………………… 388
15.2.1 五子棋棋盘和棋子 …………… 388
15.2.2 五子棋基本规则 ……………… 389
15.2.3 落子顺序 ……………………… 389
15.2.4 禁手 …………………………… 389
15.3 游戏算法思路 ……………… 390
15.3.1 棋盘的绘制 …………………… 390
15.3.2 盘面棋子绘制 ………………… 391
15.3.3 落子 …………………………… 391
15.3.4 获胜规则判定 ………………… 392
15.3.5 判定黑方禁手功能 …………… 392
15.3.6 游戏流程图 …………………… 393
15.4 游戏程序实现 ……………… 393
15.4.1 前期准备 ……………………… 393
15.4.2 创建场景 ……………………… 395
15.4.3 落子 …………………………… 398
15.4.4 切换落子权限 ………………… 404
15.4.5 更新棋盘状态 ………………… 406
15.4.6 获胜判断 ……………………… 407
15.4.7 禁手规则 ……………………… 419
15.4.8 重新开始 ……………………… 430
第16 章 跳棋 …………… 434
16.1 游戏简介 …………………… 434
16.2 游戏规则 …………………… 434
16.3 程序思路 …………………… 434
16.3.1 棋盘排列 ……………………… 434
16.3.2 棋子生成 ……………………… 436
16.3.3 棋子的位置和移动 …………… 436
16.3.4 计算可移动位置 ……………… 437
16.3.5 回合限制 ……………………… 438
16.3.6 游戏胜负判断 ………………… 438
16.3.7 游戏流程图 …………………… 438
16.4 程序实现 …………………… 439
16.4.1 前期准备 ……………………… 439
16.4.2 创建棋盘 ……………………… 439
16.4.3 创建棋子 ……………………… 444
16.4.4 移动棋子 ……………………… 446
16.4.5 限制可移动位置 ……………… 448
16.4.6 回合限制 ……………………… 456
16.4.7 胜利判断 ……………………… 459
第17 章 吃豆人 ………… 462
17.1 游戏简介 …………………… 462
17.2 游戏规则 …………………… 462
17.3 程序思路 …………………… 463
17.3.1 地图生成 ……………………… 463
17.3.2 幽灵状态 ……………………… 463
17.3.3 小精灵管理 …………………… 465
17.3.4 游戏流程图 …………………… 465
17.4 程序实现 …………………… 467
17.4.1 前期准备 ……………………… 467
17.4.2 制作游戏场景 ………………… 467
17.4.3 吃豆人的移动 ………………… 468
17.4.4 豆子的消失 …………………… 473
17.4.5 幽灵运动 ……………………… 474
第18 章 斗地主 ………… 487
18.1 游戏简介 …………………… 487
18.2 游戏规则 …………………… 487
18.3 程序思路 …………………… 488
18.3.1 扑克牌 ………………………… 488
18.3.2 洗牌 …………………………… 488
18.3.3 发牌 …………………………… 489
18.3.4 出牌 …………………………… 489
18.3.5 牌型 …………………………… 491
18.3.6 大小 …………………………… 491
18.3.7 玩家 …………………………… 491
18.3.8 胜利 …………………………… 492
18.3.9 游戏流程图 …………………… 492
18.4 工程实现 …………………… 492
18.4.1 前期准备 ……………………… 492
18.4.2 制作游戏场景 ………………… 494
18.4.3 定义一张牌 …………………… 496
18.4.4 洗牌 …………………………… 503
18.4.5 发牌 …………………………… 504
18.4.6 胜利判定 ……………………… 513
18.4.7 叫地主 ………………………… 514
18.4.8 出牌 …………………………… 525
18.4.9 判断牌型 ……………………… 527
18.4.10 比大小 ………………………… 534
18.4.11 胜利 …………………………… 541
第19 章 坦克大战 ……… 542
19.1 游戏简介 …………………… 542
19.2 游戏规则 …………………… 542
19.3 程序思路 …………………… 542
19.3.1 地图生成 ……………………… 542
19.3.2 敌人 …………………………… 543
19.3.3 玩家 …………………………… 544
19.3.4 障碍物 ………………………… 544
19.3.5 道具 …………………………… 545
19.3.6 基地 …………………………… 545
19.3.7 游戏流程图 …………………… 545
19.4 工程实现 …………………… 546
19.4.1 前期准备 ……………………… 546
19.4.2 制作游戏场景 ………………… 548
19.4.3 玩家控制 ……………………… 551
19.4.4 子弹 …………………………… 558
19.4.5 地图上各类障碍物及基地 …… 560
19.4.6 敌人 …………………………… 566
19.4.7 敌人生成器 …………………… 576
19.4.8 道具 …………………………… 579

封面图:

发表评论

相关文章