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

978-7-115-48682-0
作者: 张帆
译者:
编辑: 郭发明
分类: 其他

图书目录:

第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

详情

在游戏开发学习中,借鉴经典游戏的开发思路和算法是快速提升开发与设计水平的有效捷径,这种学习的路径也是明智而高效的。本书精选了18个广受欢迎的经典游戏案例进行讲解剖析,包括打地鼠、俄罗斯方块、打砖块、三消、翻牌子、连连看、拼图、推箱子、炸弹人、华容道、横板跑酷、扫雷、贪吃蛇、五子棋、跳棋、吃豆人、斗地主、坦克大战等。本书游戏的实现采用了Unity 2017版软件。

图书摘要

相关图书

嘘!小狗恋爱了
嘘!小狗恋爱了
给生活加点儿奇迹
给生活加点儿奇迹
世界萌物图鉴 微百科萌系简笔画手绘教程
世界萌物图鉴 微百科萌系简笔画手绘教程
电影冷知识
电影冷知识
食宋记
食宋记
东方美学口袋书 中国纹样
东方美学口袋书 中国纹样

相关文章

相关课程