內容簡介
本書由淺入深,全面系統地介紹了iOS 2D遊戲引擎Sprite Kit開發技術。本書提供了大量實例,供讀者實戰演練。另外,本書給出了大量的常見遊戲特效,用於引出知識點,使得讀者能知其所以然。這樣,讀者避免了直接面對生硬抽象的理論知識,從而更輕鬆地掌握Sprite Kit開發。 本書共12章,分為3篇。第1篇為基礎篇,涵蓋的主要內容有第一個Sprite Kit程式、場景、精靈、動作和用戶互動技術等。第2篇為進階篇,涵蓋的主要內容有遊戲中的文字、音頻和視頻、粒子系統、Sprite Kit中的其他節點(包括修剪節點、形狀節點、效果節點等技術)。第3篇為高級篇,涵蓋的主要內容有物理引擎與碰撞、瓦片地圖、發布應用程式等。 本書涉及面廣,從基本內容到高級技術再到核心原理,幾乎涉及Sprite Kit開發的所有重要知識。
目錄
第1篇基礎篇
第1章編寫第一個SpriteKit程式 2
1.1SpriteKit介紹 2
1.1.1什麼是SpriteKit 2
1.1.2SpriteKit優缺點 2
1.2蘋果賬號的註冊 3
1.2.1蘋果賬號的分類 3
1.2.2註冊免費蘋果賬號 3
1.2.3註冊非免費蘋果賬號 7
1.3Xcode的下載和安裝 9
1.3.1AppStore上下載和安裝Xcode 9
1.3.2其他的網站上下載Xcode 12
1.4綁定蘋果賬號 13
1.5更新組件與文檔 14
1.6編寫第一個程式 15
1.6.1創建項目 16
1.6.2Xcode界面介紹 18
1.6.3運行程式 20
1.6.4模擬器介紹 21
1.6.5場景編輯器 29
1.6.6編寫代碼 31
1.7使用幫助文檔 32
1.8調試 34
1.9真機測試 36
1.9.1申請和下載證書 36
1.9.2實現真機測試 45
第2章場景 46
2.1添加場景 46
2.2顯示新增的場景 49
2.3設定場景 50
2.3.1設定場景的背景顏色 50
2.3.2設定場景的縮放模式 52
2.3.3設定測試信息 54
2.4切換場景 57
2.4.1單純的場景切換 59
2.4.2具有過渡動畫的場景 59
2.5滾動場景 61
2.5.1讓場景進行滾動 62
2.5.2永無休止的滾動場景 66
第3章精靈 69
3.1節點介紹 69
3.2添加圖像到項目中 70
3.3顯示精靈 71
3.3.1使用場景編輯器顯示精靈 71
3.3.2使用代碼顯示無紋理的精靈 74
3.3.3使用代碼顯示紋理精靈 74
3.4設定精靈 76
3.4.1設定精靈的位置 76
3.4.2設定錨點 77
3.4.3對精靈著色 78
3.4.4調整精靈的尺寸 79
3.4.5縮放精靈 81
3.4.6旋轉精靈 83
3.4.7設定精靈的透明度 84
3.4.8隱藏精靈 85
3.5刪除精靈 86
3.5.1刪除指定的精靈 87
3.5.2刪除所有精靈 87
3.6讓精靈更具真實感 88
3.7移動精靈 92
3.8紋理 96
3.8.1紋理的創建 96
3.8.2紋理的顯示 96
第4章動作 98
4.1移動動作 98
4.1.1以點的方式移動 99
4.1.2以偏移量的方式移動 101
4.2序列動作 103
4.3重複動作 105
4.3.1無限重複 105
4.3.2具有次數的重複 107
4.4延遲動作 108
4.5縮放動作 111
4.5.1以縮放倍數縮放 111
4.5.2以增量值縮放 113
4.6旋轉動作 116
4.7調整尺寸的動作 117
4.7.1以目標值調整尺寸 117
4.7.2以增量調整尺寸 119
4.8組合動作 120
4.9改變透明度的動作 122
4.9.1不需指定alpha值 122
4.9.2指定alpha值 123
4.10改變顏色的動作 126
4.10.1改變混合因子 127
4.10.2改變顏色和混合因子 128
4.11以動畫的形式改變紋理的動作 129
4.12路徑動作 131
4.13反向運動 133
4.14速度動作 134
4.15顯示或隱藏動作 136
4.16塊動作 137
4.17自定義的動作 138
4.18動作屬性 140
4.18.1速度 140
4.18.2時間 141
4.18.3曲線方式 142
4.19刪除動作 144
第5章用戶互動 146
5.1觸摸 146
5.1.1輕拍觸摸 146
5.1.2移動觸摸 149
5.1.3結束觸摸和取消觸摸 154
5.2手勢 157
5.2.1輕拍 157
5.2.2捏 159
5.2.3旋轉 160
5.2.4移動 161
5.2.5滑動 163
5.2.6長按 166
5.3重力感應 169
5.3.1場景布局 172
5.3.2判斷重力感應是否可用 172
5.3.3使用重力感應移動飛船 174
第2篇進階篇
第6章遊戲中的文字 178
6.1顯示標籤 178
6.1.1使用場景編輯器顯示標籤 178
6.1.2使用代碼實現標籤 180
6.2設定標籤 182
6.2.1設定文字大小 182
6.2.2設定文字的顏色 183
6.2.3設定標籤顯示的文字 185
6.2.4設定文字的字型 186
6.3為標籤載入自定義的字型 188
6.4標籤的對齊方式 192
6.4.1水平對齊 193
6.4.2垂直對齊 195
6.5為標籤添加動作 196
第7章音頻和視頻 199
7.1背景音樂 199
7.1.1添加背景音樂 199
7.1.2控制背景音樂 203
7.1.3設定音樂的播放點 205
7.1.4設定音量 207
7.1.5設定循環播放 209
7.2音效 210
7.2.1AVFoundation.framework框架 210
7.2.2使用AudioToolbox.framework框架 214
7.2.3使用playSoundFileNamed()方法 216
7.3視頻 218
7.3.1添加視頻 219
7.3.2控制視頻 220
第8章粒子系統 223
8.1使用粒子系統編輯器添加粒子系統 223
8.2使用場景編輯器實現添加粒子系統 229
8.3粒子發射器中的參數說明 231
8.4使用代碼實現粒子系統 233
8.5使用關鍵幀序列配置粒子屬性 236
8.6給粒子添加動作 237
8.6.1使用runAction()方法添加動作 237
8.6.2使用particleAction屬性添加動作 239
8.7重置粒子系統 240
第9章SpriteKit中其他節點 243
9.1修剪節點 243
9.2形狀節點 245
9.2.1使用場景編輯器添加形狀節點 245
9.2.2使用代碼添加形狀節點 247
9.2.3個性化形狀 252
9.2.4設定形狀的路徑 257
9.3效果節點 258
第3篇高級篇
第10章物理引擎與碰撞 262
10.1什麼是物理引擎 262
10.2使用場景編輯器添加物理引擎 263
10.3使用代碼添加物理引擎 265
10.3.1創建簡單的物理體 265
10.3.2添加物理體 266
10.3.3創建自定義的物理體 267
10.3.4為物理體添加邊界 268
10.3.5可視化物理體 271
10.4物理引擎的屬性設定 275
10.5讓物理體進行移動 278
10.6物理體連線 280
10.7在遊戲中的碰撞 283
10.7.1最簡單的碰撞——if語句 283
10.7.2使用intersectsNode()方法 286
10.7.3使用物理引擎 294
第11章瓦片地圖 298
11.1創建瓦片地圖 298
11.2設定瓦片地圖 302
11.2.1縮放模式 302
11.2.2過濾模式 303
11.2.3顛倒地圖 304
11.2.4隨機生成瓦片 305
11.3載入TXT檔案到地圖中 306
11.3.1添加TXT檔案 306
11.3.2設定TXT檔案中的內容 310
11.3.3載入內容到地圖中 310
11.4載入TML檔案到地圖中 313
11.4.1軟體下載與安裝 313
11.4.2用TexturePacker創建圖塊 318
11.4.3用Tield繪製地圖 323
11.4.4載入TML檔案 327
11.5滾動地圖 333
11.6添加移動精靈 336
11.6.1添加精靈 337
11.6.2移動精靈 338
10.7在瓦片地圖上的碰撞 345
第12章發布應用程式 349
12.1創建AppID 349
12.2申請發布證書 351
12.2.1申請證書 351
12.2.2申請證書對應的配置檔案(ProvisionFile) 353
12.3準備提交應用程式 356
12.3.1創建套用及基本信息 356
12.3.2項目的相關設定 360
12.4提交應用程式到AppStore上 366
12.4.1ApplicationLoader 366
12.4.2Archives 371
12.5常見審核不通過的原因 373