iOS和tvOS 2D游戲開發教程 ( 簡體 字) |
作者:[美] raywenderlich.com教程開發組 | 類別:1. -> 程式設計 -> 手機程式 -> iPhone 2. -> 遊戲 -> 遊戲程式 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 46389 詢問書籍請說出此書號!【缺書】 NT售價: 545 元 |
出版日:2/1/2017 |
頁數:534 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115442963 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介: Sprite Kit是Apple內建的框架,專門用于開發iOS的2D游戲。tvOS是Apple TV所使用的操作系統平臺,可以將App和游戲等呈現到大屏幕的TV上。本書詳細介紹了如何使用Apple內建的2D游戲框架Sprite Kit和Swift語言來開發iOS和tVOS游戲。 全書共分為5個部分29章。每個部分針對一類技術主題,并且通過一款生動的游戲的開發貫穿其中。當學習完每個部分的時候,讀者通過一款游戲的關卡或功能的逐步完成和完善,不知不覺掌握了作者所要介紹的技術主題。 第1部分包括前7章,涵蓋了用Sprite Kit進行2D游戲開發的基礎知識,分別介紹了角色、手動移動、動作、場景、相機、標簽等主題,并且初步認識了tvOS。這部分將開發一款叫做Zombie Conga的僵尸游戲,并將其遷移到tvOS上。第二部分包括第8章到第13章,主要介紹場景編輯器、游戲開發的物理知識,裁剪、視頻和形狀節點以及中級tvOS知識。這部分將開發一款叫做Cat Nap的謎題游戲,并將其遷移到tvOS上。第三部分關注給游戲添加特效,包括第14章到第17章,將開發一款叫做Drop Charge的游戲,并通過狀態機、粒子系統、聲影效果、動畫等眾多技術來點亮這款游戲。第四部分包括第18章到第20章,主要關注iOS 9新引入的GameplayKit技術。這部分會開發一款Dino Defense塔防攻擊游戲,并通過實體-組件系統、尋路算法和代理、目標和行為等技術,實現游戲中的恐龍的尋路和移動行為。第五部分包括第21章到第24章,涉及貼圖地圖、程序式關卡生成、GameplayKit隨機性和游戲控制器等高級話題。這部分將開發一款叫做Delve的地牢探險游戲,并應用各章所介紹的技術。第六部分包括第24章到第29章,涉及和游戲相關的其他技術,包括向游戲中添加Game Center排行榜和成就、使用ReplayKit錄制游戲視頻并進行分享、把iAd加入到游戲中,以及程序員如何實現游戲美工。這部分將打造一款叫做Circuit Racer的賽車游戲中,并加入各章所所介紹的技術。 本書內容詳盡、生動有趣,通過豐富、完整的游戲案例,幫助讀者學習和掌握全新的游戲開發技術。本書適合對iOS和tvOS上的游戲開發感興趣的初學者閱讀參考。
|
目錄:第一部分 基 礎 知 識 第1章 精靈 2 1.1 開始 2 1.1.1 通用App支持 6 1.1.2 添加圖像 7 1.1.3 啟動界面 8 1.2 顯示精靈 11 1.2.1 創建精靈 11 1.2.2 把精靈加到場景 11 1.2.3 定位精靈 12 1.2.4 設置精靈的錨點 13 1.2.5 旋轉精靈 14 1.2.6 獲取精靈的大小 15 1.2.7 精靈和節點 15 1.2.8 節點和z位置 16 1.2.9 最后修整 16 1.3 挑戰 17 挑戰1:添加僵尸 17 挑戰2:進一步的文檔 18 第2章 手動移動 19 2.1 Sprite Kit游戲循環 19 2.2 移動僵尸 21 2.2.1 第1次迭代:每幀固定 移動 21 2.2.2 第2次迭代:速率乘以時間 增量 23 2.2.3 第3次迭代:朝著觸摸的 方向移動 24 2.2.4 第4次迭代:邊界檢測 28 2.2.5 第5次迭代:游戲區域 29 2.3 旋轉僵尸 31 2.4 挑戰 33 挑戰1:數學工具 33 挑戰2:讓僵尸停下來 35 挑戰3:平滑移動 35 第3章 動作 38 3.1 移動動作 38 3.2 連續動作 40 3.3 等待動作 41 3.4 運行代碼塊動作 42 3.5 反向動作 42 3.6 重復動作 44 3.7 定期生成 45 3.8 從父節點刪除動作 46 3.9 動畫動作 47 3.10 停止動作 48 3.11 縮放動畫 49 3.12 旋轉操作 50 3.13 組動作 51 3.14 碰撞檢測 52 3.15 Sprite Kit游戲循環第2輪 54 3.16 聲音動作 55 3.17 共享動作 55 3.18 挑戰 56 挑戰1:ActionsCatalog演示程序 56 挑戰2:一個受保護的僵尸 57 挑戰3:康茄舞隊 57 第4章 場景 59 4.1 獲勝或失敗的條件 59 4.2 創建一個新的場景 61 4.3 轉換到一個場景 62 4.4 創建一個定制的場景初始化 程序 63 4.5 背景音樂 65 4.6 挑戰 65 挑戰1:主菜單場景 66 第5章 相機 67 5.1 燈光、相機,開始 67 5.2 滾動的背景 70 5.3 不斷滾動的背景 72 5.4 修改游戲設置 74 5.5 挑戰 75 挑戰1:修改貓女士 75 第6章 標簽 77 6.1 內建字體和字體族 77 創建標簽 79 6.2 給Zombie Conga添加一個 標簽 80 6.3 對齊方式 81 6.4 加載定制字體 83 6.5 更新標簽文本 86 6.6 挑戰 86 挑戰1:小貓計數 86 第7章 初識tvOS 88 7.1 tvOS用戶輸入 88 7.2 開始 89 7.3 按鈕按下 92 7.4 添加一個tvOS目標 93 7.5 修正觸摸處理 97 7.6 上架圖像和3D圖標 99
第二部分 物理和節點
第8章 場景編輯器 102 8.1 開始 103 8.1.1 材質圖冊簡介 104 8.2 開始使用場景編輯器 105 8.2.1 Object Library 106 8.2.2 添加和放置精靈 107 8.2.3 布置第一個場景 108 8.3 文件引用 110 8.4 動畫和動作引用 112 給節點添加動作 113 8.5 關于時間線的更多介紹 114 重復動作 115 8.6 挑戰 118 挑戰1:進一步創建小貓動作 118 挑戰2:進一步創建小貓場景 120 第9章 物理基礎 122 9.1 Sprite Kit中的物理引擎 122 物理實體 123 9.2 開始 124 9.3 第一個Playground 126 9.4 創建一個Sprite Kit Playground 127 9.5 圓形實體 131 9.6 邊緣閉合實體 133 9.7 矩形實體 134 9.8 定制形狀的實體 134 9.9 可視化實體 135 9.10 復雜形狀的實體 136 9.11 物理實體的屬性 138 9.12 應用沖擊 139 9.13 挑戰 141 挑戰1:力量 141 挑戰2:體感實體 142 第10章 中級物理 143 10.1 開始 143 10.2 定制節點類 144 10.3 將精靈連接到變量 146 10.4 添加物理 147 10.4.1 在場景編輯器中創建簡單 實體 148 10.4.2 模擬場景 149 10.4. 3用代碼創建簡單實體 150 10.4.4 創建定制實體 151 10.5 SKTUtils簡介 151 10.6 背景音樂 152 10.7 控制實體 152 10.7.1 分類實體 153 10.7.2 處理觸摸 155 10.7.3 檢測實體之間的碰撞 157 10.7.4 檢測實體之間的接觸 159 10.8 最終修改 161 10.8.1 添加一條游戲進行中的消息 161 10.8.2 失敗場景 162 10.8.3 播放動畫 164 10.8.4 獲勝場景 165 10.9 挑戰 166 挑戰1:統計彈跳次數 167 第11章 高級物理 168 11.1 Spirt Kit游戲循環第3輪 168 11.2 關卡2簡介 170 11.3 加載關卡 171 11.4 場景編輯器,第2輪 171 11.4.1 彈弓 174 11.5 接合概覽 175 11.5.1 固定接合 175 11.5.2 有限接合 176 11.5.3 彈性接合 176 11.5.4 別針接合 177 11.5.5 滑動接合 177 11.6 接合的應用 178 11.6.1 使用固定接合 178 11.6.2 使用彈性接合 180 11.7 Sprite Kit游戲循環,第4輪 181 11.8 限制概覽 182 11.8.1 實現繩子的限制 183 11.8.2 更多限制 184 11.9 動態地創建和刪除接合 184 11.10 組合形狀 187 11.10.1 設計關卡3 188 11.10.2 創建組合對象 189 11.11 關卡推進 192 11.12 挑戰 192 挑戰1:給Cat Nap再添加一個關卡 193 第12章 裁剪、視頻和形狀節點 195 12.1 開始 196 12.2 裁剪節點 196 12.3 視頻節點 200 12.3.1 創建一個視頻節點 200 12.3.2 視頻播放 202 12.3.3 開始和結束 204 12.3.4 迪斯科舞小貓 206 12.4 形狀節點 208 12.4.1 添加一個形狀節點 209 12.4.2 形狀節點基礎 210 12.4.3 添加提示箭頭 211 12.5 挑戰 214 挑戰1:提示無處不在 214 挑戰2:當fillColor遇到fillTexture 214 第13章 中級tvOS 215 13.1 添加一個tvOS目標 215 上架圖像和3D圖標 216 13.2 將代碼移植到tvOS 218 13.3 Apple TV遙控,第2輪 220 13.3.1 TV控制第1部分:誰應該采取 行動 220 13.3.2 TV控制第2部分:停留在循 環中 222 13.3.3 和Apple TV模擬器交互 225 13.3.4 TV控制第3部分:點擊所有 內容 226 13.4 挑戰 227 挑戰1:打磨Apple TV上的所有關卡 227
第三部分 果 汁
第14章 開發Drop Charge 232 14.1 開始 232 添加圖片 233 14.2 在場景編輯器中構建游戲世界 234 14.2.1 配置場景 234 14.2.2 添加背景精靈 234 14.2.3 添加前景精靈 236 14.2.4 創建平臺 236 14.2.5 創建金幣 237 14.3 編寫游戲設置代碼 238 14.3.1 添加平臺 238 14.3.2 更多平臺 241 14.3.3 扔炸彈 241 14.3.4 獲取物理效果 242 14.3.5 碰撞檢測 243 14.3.6 使用Core Motion來控制玩家 244 14.3.7 相機跟蹤 245 14.3.8 讓巖漿流動 247 14.3.9 重復背景、金幣和平臺 249 14.3.10 還有一件事情 249 14.4 挑戰 250 挑戰1:創建跨5塊的、可破裂的 平臺 250 挑戰2:創建一個“特殊的”金幣 箭頭 250 挑戰3:創建額外的平臺和金幣 樣式 251 挑戰4:為新的覆蓋對象添加代碼 252 第15章 狀態機 254 15.1 狀態機是如何工作的 254 15.2 開始 256 15.3 狀態1:等待點擊 256 15.4 狀態2:等待炸彈 257 15.5 狀態3:玩游戲 259 更新游戲設置 260 15.6 狀態4:游戲結束 261 15.7 最后修改 262 15.8 挑戰 263 挑戰1:一個英雄狀態機 263 第16章 粒子系統 265 16.1 粒子系統是如何工作的 266 16.1.1 粒子系統理論 266 16.1.2 粒子系統的實際應用 266 16.2 粒子系統編程 267 16.2.1 粒子系統的核心屬性 268 16.2.2 讓模擬提前進行 270 16.2.3 粒子系統的更多核心屬性 271 16.2.4 范圍屬性 271 16.2.5 關鍵幀屬性 271 16.2.6 序列屬性 272 16.3 可視化地創建粒子系統 273 16.3.1 創建一個SKS文件 273 16.3.2 Xcode粒子發射器編輯器 274 16.3.3 制作巖漿 275 16.3.4 加載SKS文件 276 16.3.5 持續的系統和運行一次的 系統 277 16.3.6 哪里有火,哪里就會有煙 277 16.3.7 目標粒子系統 279 16.4 挑戰 280 挑戰1:收集常規金幣的效果 280 挑戰2:收集特殊金幣的效果 280 挑戰3:破裂平臺效果 280 挑戰4:玩家軌跡效果 280 第17章 點亮游戲 282 17.1 給游戲添加果汁的3個步驟 283 17.1.1 步驟1:角色 283 17.1.2 步驟2:交互 283 17.1.3 步驟3:5種基本的特效 284 17.2 開始 285 17.3 音樂和聲音效果 285 17.3.1 創建變化的節奏 286 17.3.2 添加聲音效果 286 17.3.3 最后的聲音效果 288 17.4 幀動畫 289 17.4.1 可視化地創建動作 289 17.4.2 通過時間線編輯 290 17.4.3 使用金幣應用 291 17.4.4 用代碼實現動畫動作 292 17.5 粒子效果 294 17.5.1 隨機爆炸 295 17.5.2 增加力量粒子效果 296 17.5.3 游戲結束了 297 17.6 屏幕效果 297 振動、振動,還是振動 298 17.7 精靈效果 299 彈跳的平臺 300 17.8 最后的修改 301 17.9 挑戰 302 挑戰1:創建一個“擠壓和拉伸”效果 302 挑戰2:將Drop Charge移植到tvOS上 302 17.10 如何繼續學習 302
第四部分 GameplayKit
第18章 實體-組件系統 304 18.1 開始 304 18.1.1 游戲層 305 18.1.2 材質圖冊 305 18.2 GameplayKit簡介 306 18.3 實體-組件系統 307 18.4 GameplayKit的實體-組件系統 308 18.5 第一個組件 308 18.6 第一個實體 309 18.7 將實體添加到場景 310 18.8 陰影組件 312 18.9 動畫組件 313 18.9.1 GKComponentSystem 316 18.9.2 添加到實體 317 18.10 重用組件 318 18.11 發射組件 320 發射炮彈 322 18.12 挑戰 324 挑戰1:生命值組件 325 第19章 尋路算法 328 19.1 GameplayKit中的尋路 328 19.1.1 基于網格的尋路 328 19.1.2 基于障礙物的尋路 329 19.2 塔防障礙物 329 打開GameScene.sks 329 19.3 塔防選擇器動畫 332 19.4 選擇塔防 334 19.5 顯示菜單 335 19.6 放置塔防 336 19.7 創建障礙物圖形 337 19.8 將塔防添加到障礙物圖形 337 19.9 用尋路算法移動實體 338 19.10 挑戰 341 挑戰1:更多障礙物 341 挑戰2:精靈的Z位置 344 第20章 代理、目標和行為 346 20.1 GameplayKit的代理、目標和行為 346 20.2 添加代理 347 20.3 添加行為和目標 348 20.4 在代理上設置行為 349 實現GKAgentDelegate 351 20.5 音樂插曲 352 20.6 攻擊波 352 20.6.1 發送攻擊波 354 20.6.2 隨機選取起始位置 355 20.6.3 從攻擊波中刪除恐龍 356 20.7 HUD 358 20.8 減少生命數 359 20.9 花錢建造塔防 360 20.10 減慢速度效果 361 20.11 挑戰 364 挑戰1:TV版的Dino Defense 364
第五部分 高 級 話 題
第21章 貼圖地圖游戲 366 21.1 Delve簡介 366 21.2 開始 367 21.2.1 開始關卡構建 368 21.2.2 創建一個基本的關卡 369 21.2.3 顯示關卡 369 21.2.4 添加一個相機節點 371 21.3 打造一個基于貼圖的關卡 372 預先設置關卡 374 21.4 實現狀態機 375 21.5 游戲需要一個英雄人物 377 21.5.1 創建精靈組件 378 21.5.2 將英雄添加到場景中 378 21.5.3 創建動畫組件 380 21.5.4 添加組件系統 384 21.5.5 讓英雄移動起來 385 21.5.6 通過傾斜來移動 387 21.5.7 更新動畫 389 21.5.8 將相機聚焦到英雄身上 390 21.5.9 添加碰撞 390 21.6 挑戰 392 挑戰1:定制關卡 392 第22章 隨機性 393 22.1 隨機意味著什么 393 22.2 GameplayKit的隨機性 394 22.2.1 隨機性分布 394 22.2.2 隨機性源 396 22.3 醉漢行走算法 397 22.4 開始 397 22.5 實現醉漢行走算法 401 22.5.1 更新地圖生成器 402 22.5.2 到達出口 404 22.6 制作更好的關卡 406 組合分布 408 22.7 挑戰 411 挑戰1:隨機貼圖 411 第23章 程序式關卡 412 23.1 基于房間的程序式關卡設計 412 23.2 構建更好的生成器 413 構建房間 413 23.3 填充地牢 417 23.3.1 處理生命值 418 23.3.2 引入石人 420 23.3.3 創建一個武器 427 23.4 挑戰 431 挑戰1:難度 432 第24章 游戲控制器 433 24.1 控制器格式 434 24.2 開始 434 24.3 創建控制器管理器 436 24.3.1 指定控制 439 24.3.2 標準游戲手柄 440 24.3.3 使用控制器命令 440 24.3.4 移動控制 442 24.3.5 擴展游戲手柄 443 24.4 添加tvOS目標 444 24.5 在tvOS上支持控制器 446 24.5.1 連接到控制器 447 24.5.2 微游戲手柄 447 24.5.3 綁定控制 449 24.6 挑戰 450 挑戰1暫停游戲 450
第六部分 額 外 章 節
第25章 Game Center成就 452 25.1 開始 452 25.2 Game Center簡介 453 25.3 配置App以使用Game Center 454 25.3.1 打開Game Center 455 25.3.2 在iTune Connect上注冊App 455 25.3.3 配置Game Center成就 457 25.4 認證本地玩家 459 25.4.1 認證回調 460 25.4.2 將認證加入到游戲中 460 25.5 添加成就 463 25.5.1 為成就創建一個輔助類 463 25.5.2 將成就整合到游戲中 464 25.6 初始化內建的用戶界面 466 將UI加入到游戲中 467 25.7 挑戰 469 挑戰1:Racing addict和成就 469 第26章 Game Center排行榜 470 26.1 支持排行榜 470 26.1.1 步驟1:認證本地玩家 470 26.1.2 步驟2:創建一個排行榜 策略 470 26.1.3 步驟3:在iTunes Connect中 配置排行榜 471 26.1.4 步驟4:向Game Center報告 得分 474 26.1.5 步驟5:向玩家顯示排行榜 476 26.2 排行榜集合 477 26.3 Game Center的安全性 479 26.3.1 提交如何工作 480 26.3.2 限制作弊 480 26.4 挑戰 480 挑戰1:排行榜集合 480 第27章 ReplayKit 481 27.1 ReplayKit架構 481 27.2 整合ReplayKit 482 27.2.1 步驟1:創建一個策略來開始和 停止記錄 483 27.2.2 步驟2:修改用戶界面 484 27.2.3 步驟3:檢查可用性 488 27.2.4 步驟4:開始和停止記錄 491 27.2.5 步驟5:預覽和分享記錄 496 第28章 iAd 498 28.1 iAd簡介 498 28.2 iAd是如何工作的 498 28.3 Ad格式 499 28.3.1 橫幅廣告 499 28.3.2 間隙廣告 500 28.3.3 媒介反饋廣告 501 28.3.4 預滾動廣告 501 28.4 整合iAd 501 28.5 加入iAd網絡 501 28.6 加入iAd框架 502 28.7 顯示橫幅廣告 504 28.8 顯示間隙廣告 506 28.9 iAd最佳實踐 507 28.10 挑戰 507 挑戰1:自動顯示 507 第29章 寫給程序員的2D美工知識 508 29.1 選擇路徑:雇人還是DIY 508 29.1.1 雇傭一名美術師 508 29.1.2 自己做美工 508 29.2 如何找到并雇傭一位美術師 509 29.2.1 會議和聚會 509 29.2.2 Twitter 509 29.2.3 搜索簡歷 509 29.2.4 招募申請者 510 29.2.5 這真的有用嗎 510 29.3 向美術師付酬 510 29.3.1 收入分成合同 510 29.3.2 固定報酬合同和分小時報酬 510 29.3.3 價格預期 511 29.4 開始 511 29.5 開始繪制草圖 512 29.6 將草圖導入到Illustrator中 515 29.7 用矢量線條描摹草圖 517 29.7.1 編輯路徑 519 29.7.2 創建復雜的線條 519 29.7.3 將線條的末端圓角化 520 29.7.4 完成輪廓 520 29.8 定制畫筆寬度 520 29.8.1 為Illustrator創建一個默認的 寬度樣式 521 29.8.2 針對不同的線條形狀,使用 其他的寬度樣式 521 29.9 給美工圖上色 522 29.9.1 使用路徑尋找器來組合 形狀 524 29.9.2 給眼睛上色 525 29.9.3 為某個區域上色 526 29.9.4 關于圖層的一點說明 527 29.9.5 調整對象層的順序 528 29.10 關于陰影和光線 529 29.10.1 表現深度的額外陰影細節 530 29.10.2 給輪廓上色 531 29.11 導出PNG文件 532 29.12 挑戰 534 挑戰1:老鼠 534 挑戰2:小狗 534
|
序: |