关于我们
书单推荐
新书推荐
|
Unity 2017经典游戏开发教程 算法分析与实现
在游戏开发学习中,借鉴经典游戏的开发思路和算法是快速提升开发与设计水平的有效捷径,这种学习的路径也是明智而高效的。本书精选了18个广受欢迎的经典游戏案例进行讲解剖析,包含打地鼠、俄罗斯方块、打砖块、三消、翻牌子、连连看、拼图、推箱子、炸弹人、华容道、横板跑酷、扫雷、贪吃蛇、五子棋、跳棋、吃豆人、斗地主、坦克大战等游戏。本书游戏的实现采用了Unity 2017版软件,该软件是目前世界范围内使用*广泛的游戏开发与虚拟现实开发平台之一,界面友好,功能强大,有适合不同学习阶段和不同开发需求的对应版本。
本书不仅详细介绍了Unity的软件操作基础与游戏开发操作流程,而且对每个游戏案例的开发思路、算法分析、程序实现等都有详尽的讲解,非常适合对游戏开发、虚拟现实开发设计感兴趣的初中级读者,也适合游戏相关专业作为教材使用。
Unity目前是全世界优秀的游戏渲染引擎平台,其中程序开发也有自己的一套规则和技巧。本书基于此,使用Unity C#编程模块,实现18款经典小游戏的算法。不论是游戏开发爱好者,还是专业人士,都能从本书学习到:(1)Unity程序脚本入口及与场景模块相关联的编程操作流程与算法分析。(2)C#的程序编写技巧。(3)学习整个游戏开发的综合流程与策划思路,以便将来更好的融入相关团队。
张帆,具有多年游戏开发和教学经验,浙江传媒学院优秀教师,研究方向包括:数字娱乐与交互设计、游戏设计,已出版教材:《Unity5.X游戏开发基础》、《 游戏策划与设计》等。
第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
你还可能感兴趣
我要评论
|