Unity 2017經典游戲開發(fā)教程 算法分析與實現
定 價:128 元
- 作者:張帆
- 出版時間:2018/10/1
- ISBN:9787115486820
- 出 版 社:人民郵電出版社
- 中圖法分類:TP317.6
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
在游戲開發(fā)學習中,借鑒經典游戲的開發(fā)思路和算法是快速提升開發(fā)與設計水平的有效捷徑,這種學習的路徑也是明智而高效的。本書精選了18個廣受歡迎的經典游戲案例進行講解剖析,包含打地鼠、俄羅斯方塊、打磚塊、三消、翻牌子、連連看、拼圖、推箱子、炸彈人、華容道、橫板跑酷、掃雷、貪吃蛇、五子棋、跳棋、吃豆人、斗地主、坦克大戰(zhàn)等游戲。本書游戲的實現采用了Unity 2017版軟件,該軟件是目前世界范圍內使用*廣泛的游戲開發(fā)與虛擬現實開發(fā)平臺之一,界面友好,功能強大,有適合不同學習階段和不同開發(fā)需求的對應版本。
本書不僅詳細介紹了Unity的軟件操作基礎與游戲開發(fā)操作流程,而且對每個游戲案例的開發(fā)思路、算法分析、程序實現等都有詳盡的講解,非常適合對游戲開發(fā)、虛擬現實開發(fā)設計感興趣的初中級讀者,也適合游戲相關專業(yè)作為教材使用。
Unity目前是全世界優(yōu)秀的游戲渲染引擎平臺,其中程序開發(fā)也有自己的一套規(guī)則和技巧。本書基于此,使用Unity C#編程模塊,實現18款經典小游戲的算法。不論是游戲開發(fā)愛好者,還是專業(yè)人士,都能從本書學習到:(1)Unity程序腳本入口及與場景模塊相關聯(lián)的編程操作流程與算法分析。(2)C#的程序編寫技巧。(3)學習整個游戲開發(fā)的綜合流程與策劃思路,以便將來更好的融入相關團隊。
張帆,具有多年游戲開發(fā)和教學經驗,浙江傳媒學院優(yōu)秀教師,研究方向包括:數字娛樂與交互設計、游戲設計,已出版教材:《Unity5.X游戲開發(fā)基礎》、《 游戲策劃與設計》等。
第1章 熟悉Unity軟件的操作………………1
1.1 可多平臺發(fā)布的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 游戲規(guī)則 ……………………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 游戲規(guī)則 ……………………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 細節(jié)完善 ……………………… 98
第4 章 打磚塊…………… 102
4.1 游戲簡介 …………………… 102
4.2 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 149
6.3 程序思路 …………………… 149
6.3.1 搭建卡片池 …………………… 149
6.3.2 卡片狀態(tài) ……………………… 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 游戲規(guī)則 …………………… 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 地圖創(chuàng)建 ……………………… 179
7.4.4 點選判定 ……………………… 183
7.4.5 消除判定 ……………………… 185
7.4.6 畫線 …………………………… 194
7.4.7 道具實現 ……………………… 199
第8 章 拼圖……………… 203
8.1 游戲簡介 …………………… 203
8.2 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 335
13.2.1 掃雷的布局 …………………… 335
13.2.2 掃雷的基本操作 ……………… 336
13.2.3 游戲結束 ……………………… 337
13.3 程序思路 …………………… 337
13.3.1 雷區(qū)繪制 ……………………… 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 雷區(qū)的生成 …………………… 341
13.4.4 地雷隨機分布 ………………… 344
13.4.5 方塊關聯(lián) ……………………… 352
13.4.6 鼠標點擊 ……………………… 356
13.4.7 游戲失敗 ……………………… 360
13.4.8 剩余地雷數、時間和笑臉管理 … 362
第14 章 貪吃蛇 ………… 370
14.1 游戲簡介 …………………… 370
14.2 游戲規(guī)則 …………………… 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 游戲規(guī)則 …………………… 388
15.2.1 五子棋棋盤和棋子 …………… 388
15.2.2 五子棋基本規(guī)則 ……………… 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 獲勝規(guī)則判定 ………………… 392
15.3.5 判定黑方禁手功能 …………… 392
15.3.6 游戲流程圖 …………………… 393
15.4 游戲程序實現 ……………… 393
15.4.1 前期準備 ……………………… 393
15.4.2 創(chuàng)建場景 ……………………… 395
15.4.3 落子 …………………………… 398
15.4.4 切換落子權限 ………………… 404
15.4.5 更新棋盤狀態(tài) ………………… 406
15.4.6 獲勝判斷 ……………………… 407
15.4.7 禁手規(guī)則 ……………………… 419
15.4.8 重新開始 ……………………… 430
第16 章 跳棋 …………… 434
16.1 游戲簡介 …………………… 434
16.2 游戲規(guī)則 …………………… 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 創(chuàng)建棋盤 ……………………… 439
16.4.3 創(chuàng)建棋子 ……………………… 444
16.4.4 移動棋子 ……………………… 446
16.4.5 限制可移動位置 ……………… 448
16.4.6 回合限制 ……………………… 456
16.4.7 勝利判斷 ……………………… 459
第17 章 吃豆人 ………… 462
17.1 游戲簡介 …………………… 462
17.2 游戲規(guī)則 …………………… 462
17.3 程序思路 …………………… 463
17.3.1 地圖生成 ……………………… 463
17.3.2 幽靈狀態(tài) ……………………… 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 游戲規(guī)則 …………………… 487
18.3 程序思路 …………………… 488
18.3.1 撲克牌 ………………………… 488
18.3.2 洗牌 …………………………… 488
18.3.3 發(fā)牌 …………………………… 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 發(fā)牌 …………………………… 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 章 坦克大戰(zhàn) ……… 542
19.1 游戲簡介 …………………… 542
19.2 游戲規(guī)則 …………………… 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