新書推薦:
《
新时代硬道理 广东寻路高质量发展
》
售價:HK$
79.4
《
6S精益管理实战(精装版)
》
售價:HK$
103.3
《
异域回声——晚近海外汉学之文史互动研究
》
售價:HK$
112.7
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:HK$
102.4
《
无端欢喜
》
售價:HK$
78.2
《
股票大作手操盘术
》
售價:HK$
55.2
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:HK$
89.7
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:HK$
45.8
|
內容簡介: |
本书是国家级一流本科专业(数字媒体技术)课程“游戏开发基础”的指定教材,同时被列为浙江省普通本科高校“十四五”重点立项建设教材。本书以Unity游戏引擎为平台,详细阐述了12款经典游戏的实现方法,这些游戏包括《打地鼠》、《记忆翻牌》、《拼图》、《推箱子》、《俄罗斯方块》、《华容道》、《连连看》、《三消》、《扫雷》、《贪吃蛇》、《五子棋》和《跳棋》。通过本书的学习和实践,读者能够全面理解和掌握游戏开发的核心算法,同时深刻领悟数据结构等基础知识在游戏开发中的实际应用,培养全面的工程思维。通过学习本书内容,读者不仅能够熟练掌握游戏引擎的运用,更能够灵活运用数据结构、数学思路等理论知识进行游戏创作。本书既适合作为各院校相关专业的教材,又适合作为对游戏开发感兴趣的读者的参考书。
|
關於作者: |
浙江传媒学院数字媒体技术专业主任,数字媒体与网络工程系副主任(主持工作),教师。澳门科技大学人文艺术学院博士。Unity价值专家,Unity全球认证讲师。中国大学生计算机设计大赛省级赛和国赛评委,全国高等院校计算机基础教育研究会文科专委会委员,浙江省电子竞技协会副秘书长,中国文化管理协会电子竞技工作委员会委员,全国高等院校计算机基础教育研究会网络科技与智能媒体设计专业委员会委员。主讲课程“游戏开发基础”获浙江省本科院校“互联网+教学”示范课堂;配套大规模在线开放课程“一刻钟学会:游戏开发基础”(“中国大学MOOC”平台)获浙江省省级线上一流课程,并被Unity官方中文课堂收录。《游戏开发基础——基于Unity游戏引擎》被列为浙江省普通本科高校“十四五”重点立项建设教材。曾获第三届全国高校数字创意教学技能大赛一等奖,浙江传媒学院“教学十佳”,“课程思政”微课比赛一等奖,以及智慧精彩一堂课一等奖等。主要研究方向:数字娱乐技术、人机交互技术、技术美术和人工智能等。
|
目錄:
|
第1章 游戏引擎介绍1 1.1 多平台发布的Unity1 1.2 Unity的下载和安装1 1.2.1 下载Unity2 1.2.2 安装Unity2 1.2.3 注册Unity4 1.2.4 启动Unity4 1.3 Unity编辑器的布局5 1.3.1 标题栏5 1.3.2 主菜单栏6 1.3.3 Project(项目资源)窗口13 1.3.4 Hierarchy(层级)窗口19 1.3.5 Scene(场景)窗口21 1.3.6 Inspector(组件)窗口30 1.3.7 Game(游戏预览)窗口35 1.3.8 Console(控制台)窗口36 1.4 自定义窗口布局37 1.4.1 使用Unity内置的窗口 布局功能37 1.4.2 自由设定窗口布局39 1.5 本章小结40 1.6 练习题40 第2章 打地鼠41 2.1 游戏简介41 2.2 游戏规则41 2.3 游戏开发核心思路41 2.3.1 洞口位置的存储结构和计算41 2.3.2 地鼠出现频率的控制42 2.3.3 地鼠的随机生成和销毁42 2.3.4 游戏时长和分数42 2.3.5 游戏流程图43 2.4 游戏实现43 2.4.1 资源的导入与Sorting Layer43 2.4.2 生成洞口45 2.4.3 地鼠的生成46 2.4.4 打击地鼠49 2.4.5 计时功能50 2.4.6 计分功能52 2.4.7 游戏结束53 2.4.8 修改地鼠出现频率53 2.4.9 修改图标54 2.4.10 添加音效55 2.4.11 重新开始游戏56 2.4.12 导出游戏56 2.5 本章小结57 2.6 练习题57 第3章 记忆翻牌58 3.1 游戏简介58 3.2 游戏规则58 3.3 游戏开发核心思路58 3.3.1 生成卡牌池58 3.3.2 洗牌59 3.3.3 卡牌状态60 3.3.4 游戏计分60 3.3.5 游戏流程图61 3.4 游戏实现61 3.4.1 游戏资源的导入与场景搭建61 3.4.2 卡牌的位置排列62 3.4.3 洗牌功能的实现63 3.4.4 显示卡牌的背面与 卡牌的图案64 3.4.5 设置卡牌状态66 3.4.6 卡牌图案的配对67 3.4.7 计算分数与步数69 3.5 本章小结72 3.6 练习题72 第4章 拼图73 4.1 游戏简介73 4.2 游戏规则73 4.3 游戏开发核心思路73 4.3.1 碎片对象的生成与位置初始化73 4.3.2 原图与碎片位置的对应关系73 4.3.3 拖动碎片74 4.3.4 碎片放置位置正确性的判断75 4.3.5 游戏流程图76 4.4 游戏实现76 4.4.1 新建工程与导入资源76 4.4.2 批量读取碎片78 4.4.3 生成碎片对象79 4.4.4 初始化碎片位置79 4.4.5 计算每个碎片的目标位置80 4.4.6 拖动鼠标81 4.4.7 判断游戏是否胜利86 4.5 本章小结87 4.6 练习题87 第5章 推箱子88 5.1 游戏简介88 5.2 游戏规则88 5.3 游戏开发核心思路89 5.3.1 地图的生成89 5.3.2 角色位置及移动方向与数组的对应关系89 5.3.3 分析角色可移动和不可移动情况90 5.3.4 角色移动的代码逻辑90 5.3.5 游戏胜利的判定92 5.3.6 游戏流程图92 5.4 游戏实现92 5.4.1 资源的导入与切割92 5.4.2 角色动画的制作94 5.4.3 地图生成的程序实现与代码重构95 5.4.4 角色移动方向位置上的Tile类型检测与实现97 5.4.5 角色可移动情况的代码框架实现99 5.4.6 角色在场景中的移动功能101 5.4.7 打印地图快照信息102 5.4.8 角色移动与地图快照信息的实时更新104 5.4.9 推动箱子的功能实现104 5.4.10 移动代码的重构优化109 5.4.11 游戏胜利条件判断112 5.5 本章小结114 5.6 练习题114 第6章 俄罗斯方块115 6.1 游戏简介115 6.2 游戏规则115 6.3 游戏开发核心思路116 6.3.1 初始化地图116 6.3.2 方块类(Block)的编写117 6.3.3 初始化方块——方块在地图中的随机生成117 6.3.4 移动和旋转方块——修改位置坐标117 6.3.5 移动和旋转方块——边界判断117 6.3.6 移动方块——向下移动118 6.3.7 消除满行方块118 6.3.8 游戏结束判断118 6.3.9 附加功能——提示下一个方块118 6.3.10 游戏流程图118 6.4 游戏实现119 6.4.1 资源的导入119 6.4.2 地图的初始化与显示121 6.4.3 地图快照信息的显示122 6.4.4 方块的初始化124 6.4.5 方块的随机生成128 6.4.6 方块的移动和旋转130 6.4.7 方块的移动、旋转与地图的刷新134 6.4.8 边界的判断138 6.4.9 满行的消除141 6.4.10 游戏结束的判断142 6.4.11 附加功能——控制方块 自动下落的速度144 6.4.12 附加功能——显示下 一个方块的类型145 6.4.13 附加功能——优化重复 代码147 6.5 本章小结149 6.6 练习题149 第7章 华容道150 7.1 游戏简介150 7.2 游戏规则150 7.3 游戏开发核心思路151 7.3.1 棋子类(Chess)的编写151 7.3.2 棋盘盘面布局的生成151 7.3.3 移动棋子的实现151 7.3.4 游戏胜利的判断156 7.3.5 游戏流程图156 7.4 游戏实现157 7.4.1 资源的导入157 7.4.2 棋子类的编写158 7.4.3 棋盘布局的生成159 7.4.4 移动棋子——选择棋子163 7.4.5 移动棋子——移动1×1棋子169 7.4.6 移动棋子——移动1×2棋子173 7.4.7 移动棋子——移动2×1棋子177 7.4.8 移动棋子——移动2×2棋子181 7.4.9 游戏胜利的判断184 7.5 本章小结188 7.6 练习题188 第8章 连连看189 8.1 游戏简介189 8.2 游戏规则189 8.3 游戏开发核心思路190 8.3.1 编写Tile类190 8.3.2 初始化地图190 8.3.3 消除操作191 8.3.4 绘制连接线193 8.4 游戏实现194 8.4.1 导入资源194 8.4.2 编写Tile类196 8.4.3 初始化地图197 8.4.4 选择Tile对象202 8.4.5 连接判断——直连、二连、三连205 8.4.6 连接线的绘制209 8.5 本章小结214 8.6 练习题214 第9章 三消215 9.1 游戏简介215 9.2 游戏规则215 9.3 游戏开发核心思路216 9.3.1 编写Gemstone类216 9.3.2 初始化游戏场景和地图216 9.3.3 消除检测217 9.3.4 消除宝石218 9.3.5 重新洗牌219 9.3.6 游戏流程图219 9.4 游戏实现220 9.4.1 导入资源与设置场景220 9.4.2 编写Gemstone类221 9.4.3 初始化地图数据结构和场景223 9.4.4 选择宝石225 9.4.5 消除宝石228 9.4.6 重新洗牌操作233 9.5 本章小结235 9.6 练习题235 第10章 扫雷236 10.1 游戏简介236 10.2 游戏规则236 10.2.1 《扫雷》游戏的布局236 10.2.2 《扫雷》游戏的基本 操作237 10.3 游戏开发核心思路237 10.3.1 初始化游戏地图237 10.3.2 编写Tile类237 10.3.3 随机生成地雷238 10.3.4 编写辅助函数,显示 地图信息238 10.3.5 Tile的交互238 10.3.6 方格的单击(左键、 遍历翻开、右键)239 10.3.7 游戏结束判断239 10.3.8 UI控制239 10.3.9 游戏流程图240 10.4 游戏实现240 10.4.1 资源导入与场景设置240 10.4.2 初始化场景241 10.4.3 左、右键操作248 10.4.4 游戏结束判断252 10.4.5 UI控制256 10.4.6 重新开始一局游戏269 10.5 本章小结270 10.6 练习题270 第11章 贪吃蛇271 11.1 游戏简介271 11.2 游戏规则271 11.3 游戏开发核心思路271 11.3.1 地图的生成271 11.3.2 食物的出现272 11.3.3 蛇的数据结构272 11.3.4 贪吃蛇的移动算法272 11.3.5 判断蛇头是否撞到了 自身272 11.3.6 边界的判断273 11.3.7 游戏流程图273 11.4 游戏实现273 11.4.1 资源导入和场景设置273 11.4.2 编写Node类275 11.4.3 初始化场景276 11.4.4 贪吃蛇的移动280 11.4.5 结束判定285 11.5 本章小结286 11.6 练习题286 第12章 五子棋287 12.1 游戏简介287 12.2 游戏规则287 12.2.1 《五子棋》游戏的 棋盘和棋子287 12.2.2 《五子棋》游戏的 基本规则288 12.2.3 落子顺序288 12.3 游戏开发核心思路288 12.3.1 绘制棋盘288 12.3.2 绘制棋子289 12.3.3 落子289 12.3.4 获胜规则289 12.3.5 判断黑方禁手功能290 12.3.6 游戏流程图290 12.4 游戏实现291 12.4.1 前期准备291 12.4.2 初始化棋盘地图292 12.4.3 编写落子框架294 12.4.4 落子296 12.4.5 连子判断和胜负判断297 12.5 本章小结302 12.6 练习题302 第13章 跳棋303 13.1 游戏简介303 13.2 游戏规则303 13.3 游戏开发核心思路304 13.3.1 棋盘排列304 13.3.2 生成棋子305 13.3.3 棋子在Unity中笛卡儿 坐标系下的位置映射305 13.3.4 计算可移动位置306 13.3.5 回合限制307 13.3.6 游戏胜负判断307 13.3.7 游戏流程图307 13.4 游戏实现308 13.4.1 前期准备308 13.4.2 创建棋格310 13.4.3 创建棋子312 13.4.4 选择棋子314 13.4.5 判断邻近可走棋格316 13.4.6 单步移动棋子319 13.4.7 跳子320 13.4.8 回合限制322 13.4.9 胜负判断324 13.5 本章小结327 13.6 练习题327
|
|