本書共11章。其中,第1~4章主要介紹了開發環境的搭建、賬號綁定、模擬器的使用、真機測試和Swift編程必備基礎知識等。第5~11章以遊戲項目案例為主導,講解了記憶配對、太空侵略者、Simon記憶遊戲、迷你高爾夫和銀河大戰5個遊戲項目案例的開發過程和應用程式的發布。在講解過程中,對遊戲開發中的核心關鍵技術進行了仔細的講解。這些技術包括圖像繪製、遊戲引擎、音頻引擎、用戶互動、Sprite Kit、感測器套用和App的發布等。
基本介紹
- 書名:Swift遊戲開發案例實戰
- 作者:劉媛媛
- ISBN:9787302395751
- 頁數:348
- 定價:59.8元
- 出版社:清華大學出版社
- 出版時間:2015-04-01
- 裝幀:平裝
- 開本:16開
內容簡介,本書特色,內容體系,目錄,
內容簡介
本書是國內第一本Swift遊戲開發圖書。本書由淺入深、全面、系統地講解了Swift 遊戲開發的基礎知識和各項關鍵技術,其中重點介紹了5個遊戲項目案例的開發,供讀者實戰演練。同時,本書也提供了這些遊戲案例的完整原始碼,供讀者學習和研究。
本書共11章。其中,第1~4章主要介紹了開發環境的搭建、賬號綁定、模擬器的使用、真機測試和Swift編程必備基礎知識等。第5~11章以遊戲項目案例為主導,講解了記憶配對、太空侵略者、Simon記憶遊戲、迷你高爾夫和銀河大戰5個遊戲項目案例的開發過程和應用程式的發布。在講解過程中,對遊戲開發中的核心關鍵技術進行了仔細的講解。這些技術包括圖像繪製、遊戲引擎、音頻引擎、用戶互動、Sprite Kit、感測器套用和App的發布等。
本書涉及面廣,從基本的操作到遊戲開發的關鍵技術,再到遊戲項目案例實戰,幾乎涉及Swift iOS遊戲開發的各方面的重要知識。本書不僅適合遊戲開發愛好者和遊戲開發一執行緒序員閱讀,也適合Swift初學者和iOS各類開發人員閱讀。
2014年9月,蘋果公司推出了新一代開發語言Swift。該語言開發效率更高,受到了蘋果開發者的廣泛歡迎。在國內,大量的開發人員也開始逐漸從Objective-C轉向了Swift語言,所以使用Swift語言進行開發的套用也越來越多。而遊戲類App由於其用戶數量巨大,更容易為開發者帶來可觀的收益,所以遊戲開發,尤其是基於手機的遊戲開發越來越受到廣大開發人員的青睞。
在所有的App開發類別中,遊戲開發不同於普通套用開發。它在軟體的圖形、音頻和互動等方面都有特殊的要求。這些技術就成為了開發者所必須要掌握的知識。本書從Swift語言的基礎開始講解,然後重點以案例的形式講解了如何使用Swift語言開發蘋果遊戲套用。書中著重講解了5項核心技術,幫助讀者快速具備遊戲套用開發的技能。
在所有的App開發類別中,遊戲開發不同於普通套用開發。它在軟體的圖形、音頻和互動等方面都有特殊的要求。這些技術就成為了開發者所必須要掌握的知識。本書從Swift語言的基礎開始講解,然後重點以案例的形式講解了如何使用Swift語言開發蘋果遊戲套用。書中著重講解了5項核心技術,幫助讀者快速具備遊戲套用開發的技能。
本書特色
1.內容由淺入深
Swift作為一門新興語言,大部分開發者往往對其沒有足夠的了解。本書通過兩章的內容幫助讀者鞏固Swift的語言基礎,更快地融入Swift開發工作中。
2.以遊戲項目案例為主導
本書詳細講解了5個遊戲的開發過程,如記憶配對、太空侵略者、Simon記憶、迷你高爾夫和銀河大戰。這些項目將幫助讀者更好地理解iOS項目開發的方式和流程。
3.涵蓋遊戲開發的關鍵技術
遊戲開發不同於普通軟體的開發,它對圖形、音頻和互動等方面有更高的要求。本書結合案例,著重講解這些重要的技術,並且最後還講解SpriteKit的使用。
4.貼近實際開發
本書全面介紹了實際蘋果套用開發的各個環節,內容包括環境搭建、綁定蘋果賬號、遊戲套用開發和應用程式發布。通過完整的開發過程呈現,可以幫助讀者更好的掌握開發過程。
Swift作為一門新興語言,大部分開發者往往對其沒有足夠的了解。本書通過兩章的內容幫助讀者鞏固Swift的語言基礎,更快地融入Swift開發工作中。
2.以遊戲項目案例為主導
本書詳細講解了5個遊戲的開發過程,如記憶配對、太空侵略者、Simon記憶、迷你高爾夫和銀河大戰。這些項目將幫助讀者更好地理解iOS項目開發的方式和流程。
3.涵蓋遊戲開發的關鍵技術
遊戲開發不同於普通軟體的開發,它對圖形、音頻和互動等方面有更高的要求。本書結合案例,著重講解這些重要的技術,並且最後還講解SpriteKit的使用。
4.貼近實際開發
本書全面介紹了實際蘋果套用開發的各個環節,內容包括環境搭建、綁定蘋果賬號、遊戲套用開發和應用程式發布。通過完整的開發過程呈現,可以幫助讀者更好的掌握開發過程。
內容體系
本書內容及體系結構
第1章開發環境搭配——Xcode的安裝與運行
本章主要內容包括蘋果賬號的註冊、Xcode的下載和安裝、首次打開Xcode,以及Xcode的界面介紹等內容。通過本章的學習,讀者可以了解和掌握如何去註冊一個蘋果賬號,以及如何去創建項目。
第2章編寫第一個Swift程式
本章主要內容包括程式的運行、模擬器的操作、編輯界面的介紹、代碼編寫以及真機測試等內容。通過本章的學習,讀者可以詳細的了解和掌握在創建的項目中編寫簡單的Swift程式,以及實現真機測試。
第3章Swift基礎語法
本章主要內容包括常量、變數、數據類型、字面值、運算符、類型轉換、字元串、集合類型、程式控制結構、函式和閉包等內容。通過本章的學習,讀者可以詳細的了解和掌握Swift處理數據的各種方法。
第4章Swift高級語法
本章主要內容包括類、繼承、枚舉、結構、構造方法和析構方法、擴展和協定、運算符重載和泛型等內容。通過本章的學習,讀者可以詳細的了解和掌握Swift的一些高級語法的內容。
第5章iPhone遊戲開發基礎——記憶配對遊戲
本章主要內容包括遊戲介紹、創建項目、主選單模組、配對模板、分數榜單模組的設計和場景切換等內容。通過本章的學習,讀者可以詳細的了解和掌握如何進行界面設計、在翻轉兩個卡牌後的遊戲配對,以及場景切換等內容。
第6章太空侵略者——繪製圖像
本章主要內容包括遊戲中飛船的創建和移動、敵人的創建和移動、子彈的創建和移動等內容。通過本章的學習,讀者可以詳細的了解和掌握視圖的創建以及移動。
第7章太空侵略者2——遊戲引擎
本章主要內容包括提示界面的設計,以及檢測碰撞等內容。通過本章的學習,讀者可以詳細的了解和掌握如何實現兩個物體的碰撞功能。
第8章Simon記憶遊戲——音頻引擎
本章主要內容包括遊戲的界面設計、添加顏色提示序列和添加背景音樂等內容。通過本章的學習,讀者可以詳細的了解和掌握如何實現聲音的添加和使用。
第9章迷你高爾夫——用戶互動
本章主要內容包括遊戲的界面設計、用戶互動中的不足和桿數顯示等內容。通過本章的學習,讀者可以詳細的了解和掌握遊戲中用戶互動的實施方式。
第10章銀河大戰——SpriteKit遊戲引擎和感測器套用
本章主要內容包括創建Game類型項目、遊戲的界面設計、什麼是SpriteKit,以及使用感測器操控飛船等內容。通過本章的學習,讀者可以詳細的了解和掌握如何使用SpriteKit去開發遊戲,以及如何使用感測器。
第11章應用程式的發布
本章主要內容包括創建AppID、申請發布證書、準備提交應用程式、提交應用程式到AppStore上,以及常見審核不通過的原因等內容。通過本章的學習,讀者可以詳細的了解和掌握如何將一個應用程式上傳到AppStore上。
本章主要內容包括蘋果賬號的註冊、Xcode的下載和安裝、首次打開Xcode,以及Xcode的界面介紹等內容。通過本章的學習,讀者可以了解和掌握如何去註冊一個蘋果賬號,以及如何去創建項目。
第2章編寫第一個Swift程式
本章主要內容包括程式的運行、模擬器的操作、編輯界面的介紹、代碼編寫以及真機測試等內容。通過本章的學習,讀者可以詳細的了解和掌握在創建的項目中編寫簡單的Swift程式,以及實現真機測試。
第3章Swift基礎語法
本章主要內容包括常量、變數、數據類型、字面值、運算符、類型轉換、字元串、集合類型、程式控制結構、函式和閉包等內容。通過本章的學習,讀者可以詳細的了解和掌握Swift處理數據的各種方法。
第4章Swift高級語法
本章主要內容包括類、繼承、枚舉、結構、構造方法和析構方法、擴展和協定、運算符重載和泛型等內容。通過本章的學習,讀者可以詳細的了解和掌握Swift的一些高級語法的內容。
第5章iPhone遊戲開發基礎——記憶配對遊戲
本章主要內容包括遊戲介紹、創建項目、主選單模組、配對模板、分數榜單模組的設計和場景切換等內容。通過本章的學習,讀者可以詳細的了解和掌握如何進行界面設計、在翻轉兩個卡牌後的遊戲配對,以及場景切換等內容。
第6章太空侵略者——繪製圖像
本章主要內容包括遊戲中飛船的創建和移動、敵人的創建和移動、子彈的創建和移動等內容。通過本章的學習,讀者可以詳細的了解和掌握視圖的創建以及移動。
第7章太空侵略者2——遊戲引擎
本章主要內容包括提示界面的設計,以及檢測碰撞等內容。通過本章的學習,讀者可以詳細的了解和掌握如何實現兩個物體的碰撞功能。
第8章Simon記憶遊戲——音頻引擎
本章主要內容包括遊戲的界面設計、添加顏色提示序列和添加背景音樂等內容。通過本章的學習,讀者可以詳細的了解和掌握如何實現聲音的添加和使用。
第9章迷你高爾夫——用戶互動
本章主要內容包括遊戲的界面設計、用戶互動中的不足和桿數顯示等內容。通過本章的學習,讀者可以詳細的了解和掌握遊戲中用戶互動的實施方式。
第10章銀河大戰——SpriteKit遊戲引擎和感測器套用
本章主要內容包括創建Game類型項目、遊戲的界面設計、什麼是SpriteKit,以及使用感測器操控飛船等內容。通過本章的學習,讀者可以詳細的了解和掌握如何使用SpriteKit去開發遊戲,以及如何使用感測器。
第11章應用程式的發布
本章主要內容包括創建AppID、申請發布證書、準備提交應用程式、提交應用程式到AppStore上,以及常見審核不通過的原因等內容。通過本章的學習,讀者可以詳細的了解和掌握如何將一個應用程式上傳到AppStore上。
目錄
第1章 開發環境搭配——Xcode的安裝與運行 1
1.1 蘋果賬號 1
1.1.1 蘋果賬號的成員分類 1
1.1.2 註冊免費的蘋果賬號 1
1.1.3 註冊非免費的蘋果賬號 4
1.2 Xcode的下載和安裝 6
1.2.1 App Store中下載和安裝Xcode 6
1.2.2 其他網站下載和安裝Xcode 9
1.3 綁定蘋果賬號 10
1.4 更新組件和文檔 12
1.5 首次打開Xcode 13
1.6 Xcode的界面介紹 15
1.6.1 導航視窗 15
1.6.2 工具視窗 15
1.6.3 編輯視窗 17
1.6.4 目標視窗 17
第2章 編寫第一個Swift程式 19
2.1 運行程式 19
2.2 模擬器的操作 21
2.2.1 模擬器與真機的區別 21
2.2.2 退出應用程式 21
2.2.3 應用程式圖示的設定 21
2.2.4 語言設定 23
2.2.5 旋轉 26
2.2.6 刪除應用程式 27
2.3 編輯界面 27
2.3.1 界面介紹 27
2.3.2 設計界面 29
2.3.3 視圖對象庫的介紹 31
2.4 編寫代碼 33
2.5 調試 35
2.6 真機測試 38
2.6.1 申請和下載證書 38
2.6.2 實現真機測試 47
2.7 使用幫助文檔 47
第3章 Swift基礎語法 49
3.1 常量和變數 49
3.1.1 常量 49
3.1.2 變數 51
3.2 數據類型 52
3.2.1 整數類型 52
3.2.2 浮點類型 54
3.2.3 字元類型 55
3.2.4 布爾類型 55
3.2.5 可選類型 56
3.2.6 類型別名 56
3.3 值的表示——字面值 57
3.3.1 整型字面值 57
3.3.2 浮點型字面值 57
3.3.3 字元型字面值 58
3.3.4 字元串型字面值 58
3.3.5 布爾型字面值 59
3.3.6 元組型字面值 59
3.4 運算符 60
3.4.1 元的介紹 60
3.4.2 賦值運算符 60
3.4.3 一元加運算符 61
3.4.4 一元減運算符 61
3.4.5 算術運算符 61
3.4.6 自增、自減運算符 62
3.4.7 比較運算符 63
3.4.8 邏輯運算符 64
3.4.9 位運算符 65
3.4.10 複合運算符 66
3.4.11 求位元組運算符 67
3.4.12 強制解析運算符 67
3.4.13 區間運算符 68
3.4.14 溢出運算符 69
3.5 類型轉換 70
3.5.1 整數的轉換 70
3.5.2 整數與浮點數的轉換 70
3.6 字元串 71
3.6.1 字元串的初始化 71
3.6.2 字元串的操作 71
3.7 集合類型 72
3.7.1 數組 72
3.7.2 字典 73
3.8 程式控制結構 75
3.8.1 順序結構 75
3.8.2 選擇結構 75
3.8.3 循環結構 80
3.8.4 跳轉語句 83
3.8.5 標籤語句 85
3.9 函式 86
3.9.1 函式的介紹 87
3.9.2 無參函式的使用 87
3.9.3 有參函式的使用 88
3.9.4 函式的參數的注意事項 89
3.9.5 函式的返回值 92
3.9.6 函式類型 94
3.9.7 常用的標準函式 96
3.9.8 函式的嵌套 97
3.10 閉包 99
3.10.1 閉包表達式 99
3.10.2 Trailing閉包 102
3.10.3 捕獲值 103
第4章 Swift高級語法 105
4.1 類 105
4.1.1 創建類 105
4.1.2 實例化對象 105
4.1.3 屬性 106
4.1.4 方法 110
4.1.5 下標腳本 112
4.1.6 類的嵌套 114
4.1.7 可選連結 117
4.2 繼承 118
4.2.1 繼承的實現 118
4.2.2 重寫 120
4.2.3 禁止重寫 124
4.2.4 類型檢測 124
4.3 枚舉 127
4.3.1 定義枚舉 128
4.3.2 定義枚舉成員 128
4.3.3 實例化枚舉的對象 129
4.3.4 枚舉成員與switch語句的匹配 130
4.3.5 訪問枚舉中成員的原始值 131
4.3.6 相關值 132
4.3.7 定義枚舉類型的其他 132
4.3.8 枚舉的嵌套 134
4.4 結構 136
4.4.1 定義結構 136
4.4.2 實例化結構對象 137
4.4.3 在結構中定義內容 137
4.5 構造方法和析構方法 140
4.5.1 值類型的構造器 140
4.5.2 類的構造器 143
4.5.3 析構方法 147
4.6 擴展和協定 148
4.6.1 擴展 148
4.6.2 協定 151
4.6.3 可選協定 155
4.6.4 使用協定類型 156
4.6.5 協定的繼承 157
4.6.6 協定的組合 158
4.6.7 檢查協定的一致性 159
4.6.8 委託 160
4.7 運算符重載 161
4.7.1 算術運算符重載 162
4.7.2 前置運算符和後置運算符重載 162
4.7.3 複合運算符重載 163
4.7.4 比較運算符重載 164
4.7.5 自定義運算符 165
4.8 泛型 168
4.8.1 泛型函式 168
4.8.2 泛型類型 169
4.8.3 具有多個類型參數的泛型 171
4.8.4 類型約束 171
4.8.5 關聯類型 172
第5章 iPhone遊戲開發基礎——記憶配對遊戲 176
5.1 遊戲介紹 176
5.2 開發遊戲之前的準備工作 177
5.2.1 創建項目 177
5.2.2 添加圖像 178
5.3 主選單模組 179
5.4 配對模組 182
5.4.1 設計界面 183
5.4.2 卡牌的翻轉 186
5.5 核心功能——卡牌的配對 194
5.5.1 翻轉兩個卡牌 194
5.5.2 判斷卡牌 194
5.5.3 配對成功和失敗的操作 195
5.5.4 完成所有配對 197
5.6 配對模組的額外功能 199
5.6.1 猜測次數功能 199
5.6.2 提高遊戲的難度 200
5.7 分數榜單模組 202
5.7.1 準備工作 202
5.7.2 界面設計 202
5.7.3 實現分數的顯示 205
5.8 關於遊戲模組 209
5.9 場景切換 210
5.9.1 什麼是場景切換 210
5.9.2 實現場景切換 211
5.9.3 過渡動畫效果 213
5.9.4 全部的場景切換 214
第6章 太空侵略者——繪製圖像 217
6.1 遊戲介紹 217
6.2 開發遊戲之前的準備工作 218
6.3 主選單模板 218
6.4 射擊遊戲模板 219
6.4.1 準備工作 219
6.4.2 設計界面 220
6.5 添加飛船 221
6.6 移動飛船 223
6.6.1 向左移動 223
6.6.2 向右移動 224
6.7 創建敵人 225
6.7.1 創建單個敵人的創建 225
6.7.2 創建多個敵人 226
6.8 移動敵人 228
6.9 發射子彈 229
6.9.1 飛船的子彈 229
6.9.2 敵人的子彈 231
6.10 場景的切換 234
第7章 太空侵略者2——遊戲引擎 236
7.1 遊戲介紹 236
7.2 開發遊戲前的準備工作 237
7.3 主選單模組 238
7.4 射擊遊戲模組 239
7.5 了解狀態機 240
7.6 使用代碼添加射擊遊戲界面元素 241
7.6.1 提示界面 241
7.6.2 飛船 243
7.6.3 敵人 248
7.7 檢測碰撞 253
7.7.1 敵人的子彈擊中飛船的檢測 253
7.7.2 飛船的子彈擊中敵人的檢測 255
7.8 計分功能 256
7.9 殲滅所有敵人 257
7.10 分數榜模組 259
7.10.1 準備工作 259
7.10.2 界面設計 259
7.10.3 實現分數的顯示 260
7.11 場景切換 265
第8章 Simon記憶遊戲——音頻引擎 268
8.1 遊戲介紹 268
8.2 開發遊戲之前的準備工作 269
8.3 主選單模組 272
8.4 遊戲模組 273
8.4.1 準備工作 273
8.4.2 界面設計 274
8.5 添加顏色提示序列 275
8.5.1 添加提示聲音 275
8.5.2 添加顏色提示 278
8.6 玩家猜測 279
8.7 添加背景音樂 281
8.8 遊戲模組的額外功能 282
8.8.1 顯示遊戲處於的關數 282
8.8.2 提高遊戲的難度 283
8.9 遊戲介紹模組 285
8.10 場景切換 286
第9章 迷你高爾夫——用戶互動 288
9.1 遊戲介紹 288
9.2 開發遊戲之前的準備工作 289
9.3 主選單模組 290
9.4 遊戲模組 291
9.4.1 準備工作 291
9.4.2 界面設計 291
9.4.3 添加高爾夫球 292
9.4.4 移動高爾夫球 293
9.5 用戶互動中的不足 296
9.5.1 邊界的限定 296
9.5.2 速度限定 297
9.5.3 進洞的限定 297
9.6 桿數顯示 300
9.7 遊戲界面模組 301
9.8 場景切換 302
第10章 銀河大戰——Sprite Kit遊戲引擎和感測器套用 306
10.1 遊戲介紹 306
10.2 創建Game類型項目 307
10.2.1 Game模板類型簡介 307
10.2.2 創建項目 308
10.2.3 添加圖像和音頻檔案 309
10.3 主選單模組 310
10.4 射擊遊戲模組 311
10.5 為射擊遊戲界面添加元素 312
10.5.1 準備工作 312
10.5.2 什麼是Sprite Kit 313
10.5.3 使用SKSpriteNode添加背景 313
10.5.4 使用SKSpriteNode添加飛船 315
10.5.5 使用SKSpriteNode添加敵人 316
10.6 發射子彈 316
10.6.1 添加子彈 317
10.6.2 通過觸摸發射子彈 317
10.7 使用感測器操控飛船 318
10.7.1 感測器介紹 318
10.7.2 判斷感測器是否可用 318
10.7.3 實現移動 319
10.8 碰撞檢測 322
10.9 分數顯示 323
10.9.1 使用SKLabelNode添加顯示分數的節點 323
10.9.2 實現分數的顯示 324
10.10 添加聲音 325
10.10.1 進入射擊遊戲界面的聲音 325
10.10.2 子彈擊中敵人的聲音 326
10.11 遊戲介紹模組 326
10.12 場景切換 327
第11章 應用程式的發布 330
11.1 創建App ID 330
11.2 申請發布證書 331
11.2.1 申請證書 331
11.2.2 申請證書對應的配置檔案(Provision File) 333
11.3 準備提交應用程式 335
11.3.1 創建套用及基本信息 335
11.3.2 項目的相關設定 337
11.4 提交應用程式到App Store上 343
11.5 常見審核不通過的原因 348