iOS Swift 遊戲程式開發錦囊妙計 第二版

Book description

遊戲開發問題的簡明解法

「對於想要製作突出的iOS遊戲的開發人員而言,本書是寶貴的資源,內容涵蓋遊戲引擎的設計原則與iOS運用的具體細節。」
—Jonathan Adamczewski,Insomniac Games遊戲引擎設計師

打算做出驚人的iPhone、iPad和iPod touch遊戲嗎?利用Apple的Swift程式語言,開發遊戲從未如此簡單。本書以Swift更新版本,針對常見的iOS遊戲開發議題提供詳細的錦囊妙計,內容涵蓋廣泛,範圍從2D與3D數學、Sprite Kit、OpenGL到系統效能皆有著墨。

對於iOS遊戲程式設計會遭遇到的普遍問題而言,讀者可以從本書得到簡單而直接的答案與解法。如果想要了解如何讓物體施行物理運動,或是想要複習遊戲相關的數學問題,本書提供了豐富示範程式碼及解答。閱讀本書之前,讀者需要對iOS軟體開發、Swift與Objective-C語言有一些基本的認識。

‧設計遊戲的架構與程式布局
‧利用UIKit建置元件與自訂選單
‧偵測與回應玩家的輸入
‧應用音效與音樂的播放技術
‧提供不同的資訊儲存方式
‧運用Sprite Kit的2D繪圖
‧運用Scene Kit的3D繪圖
‧安排二維的物理模擬
‧提供OpenGL基礎、中等及高等的3D繪圖功能
‧賦予人工智慧的遊戲挑戰
‧應用遊戲控制器與外接螢幕

 

Table of contents

  1. 封面
  2. 書名頁
  3. 英文版權頁
  4. 前言 (1/3)
  5. 前言 (2/3)
  6. 前言 (3/3)
  7. 目錄 (1/2)
  8. 目錄 (2/2)
  9. 第一章 遊戲布局
  10. 1.1 布局遊戲引擎(Engine)
  11. 1.2 繼承式(Inheritance-Based)的遊戲布局
  12. 1.3 元件式(Component-Based)的遊戲布局
  13. 1.4 計算差量時間(Delta Times)
  14. 1.5 偵測玩家進入與離開遊戲的時機
  15. 1.6 依據計時器的設定來更新遊戲內容
  16. 1.7 依據畫面的更動來更新遊戲內容
  17. 1.8 暫停遊戲
  18. 1.9 計算遊戲啟動到目前為止經過的時間
  19. 1.10 運用Closures
  20. 1.11 設計用來執行Closure的Method
  21. 1.12 運用操作佇列(Operation Queues)
  22. 1.13 遞延執行工作項目
  23. 1.14 執行相依(Depend)操作
  24. 1.15 用Closures過濾陣列內容
  25. 1.16 在遊戲運作時載入新資源(Assets)
  26. 1.17 添加遊戲的單元測試(Unit Tests)
  27. 1.18 2D網格(Grids)
  28. 第二章 Views與選單
  29. 2.1 運用Storyboards (1/2)
  30. 2.1 運用Storyboards (2/2)
  31. 2.2 建構View Controllers (1/2)
  32. 2.2 建構View Controllers (2/2)
  33. 2.3 使用Segues切換畫面
  34. 2.4 使用Constraints來布局Views
  35. 2.5 在遊戲專案中添加圖片
  36. 2.6 裁切用於按鈕的圖片
  37. 2.7 用UI Dynamics製作動畫Views
  38. 2.8 利用Core Animation移動圖片
  39. 2.9 旋轉圖片
  40. 2.10 製作彈出效果(Popping Effect)的動畫View
  41. 2.11 用UIAppearance來裝飾UI項目
  42. 2.12 3D旋轉的UIView
  43. 2.13 在遊戲內容上面覆疊選單
  44. 2.14 設計實用的遊戲選單
  45. 第三章 輸入
  46. 3.1 偵測View被觸碰的時機
  47. 3.2 偵測點擊手勢(Tap Gestures)
  48. 3.3 拖曳畫面中的圖片
  49. 3.4 偵測旋轉手勢
  50. 3.5 偵測捏合手勢(Pinching Gestures)
  51. 3.6 建構自訂的手勢
  52. 3.7 接收View自訂區域裡的觸點
  53. 3.8 偵測裝置的搖動(Shakes)
  54. 3.9 偵測裝置的傾斜(Tilt)情況
  55. 3.10 取得羅盤方位(Compass Heading)
  56. 3.11 存取玩家的位置
  57. 3.12 計算玩家的移動速度
  58. 3.13 準確定位玩家鄰近的地標(Landmarks)
  59. 3.14 接收玩家位置變更時的通知
  60. 3.15 查找街道地址的GPS座標
  61. 3.16 查找玩家所在位置的街道地址
  62. 3.17 使用行動裝置作為車子的方向盤
  63. 3.18 偵測磁鐵(Magnets)
  64. 3.19 利用輸入改進遊戲的設計
  65. 第四章 音效
  66. 4.1 用AVAudioPlayer播放音效
  67. 4.2 用AVAudioRecorder錄音
  68. 4.3 運用多個音訊播放器
  69. 4.4 交叉混合音效
  70. 4.5 合成語音(Synthesizing Speech)
  71. 4.6 取得音樂App正在播放的內容資訊
  72. 4.7 偵測目前播放曲目的變更
  73. 4.8 控制音樂播放
  74. 4.9 開放玩家選擇音樂
  75. 4.10 協調其他應用程式的音訊
  76. 4.11 決定遊戲設計中音效的最佳使用方式
  77. 第五章 資料儲存
  78. 5.1 儲存遊戲的狀態
  79. 5.2 本機儲存高分排行(High Scores)
  80. 5.3 用iCloud儲存遊戲內容
  81. 5.4 使用iCloud的 Key-Value Store
  82. 5.5 載入結構化資訊
  83. 5.6 決定檔案或資料庫(Database)的使用時機
  84. 5.7 管理資源集合
  85. 5.8 將資訊儲存在NSUserDefaults
  86. 5.9 實作最佳資料儲存策略
  87. 5.10 遊戲裡的貨幣
  88. 第六章 2D繪圖與Sprite Kit
  89. 6.1 熟悉2D數學
  90. 6.2 建構Sprite Kit View
  91. 6.3 建構場景
  92. 6.4 添加Sprite
  93. 6.5 添加文字Sprite
  94. 6.6 確定可用的字型
  95. 6.7 引入自訂字型
  96. 6.8 場景轉場
  97. 6.9 移動Sprites與標籤
  98. 6.10 增加紋理圖Sprite
  99. 6.11 建構紋理圖集(Texture Atlases)
  100. 6.12 使用形狀節點
  101. 6.13 使用混合模式
  102. 6.14 利用圖片效果改變Sprites的繪製方式
  103. 6.15 使用貝茲路徑(Bézier Paths)
  104. 6.16 建構煙霧、火焰和其他粒子特效 (Particle Effects)
  105. 6.17 搖動螢幕
  106. 6.18 製作動畫Sprite
  107. 6.19 視差捲動(Parallax Scrolling) (1/2)
  108. 6.19 視差捲動(Parallax Scrolling) (2/2)
  109. 6.20 建構雜訊(Noise)圖片
  110. 第七章 物理學
  111. 7.1 回顧物理學的術語和定義
  112. 7.2 具有物理行為的Sprites
  113. 7.3 建構靜態與動態的物件
  114. 7.4 定義Collider形狀
  115. 7.5 設定速度
  116. 7.6 運用質量、尺寸與密度
  117. 7.7 建構場景裡的牆壁
  118. 7.8 控制重力
  119. 7.9 避免物件旋轉
  120. 7.10 控制物理模擬的時間
  121. 7.11 偵測碰撞
  122. 7.12 找尋物件
  123. 7.13 運用接合
  124. 7.14 運用力量
  125. 7.15 將推進器(Thrusters)加入物件中
  126. 7.16 建構爆炸效果
  127. 7.17 利用裝置的方向來控制重力
  128. 7.18 拖曳物件
  129. 7.19 建構汽車
  130. 第八章 3D繪圖
  131. 8.1 運用3D數學
  132. 8.2 建構GLKit繪圖環境(Context)
  133. 8.3 用OpenGL描繪正方形 (1/2)
  134. 8.3 用OpenGL描繪正方形 (2/2)
  135. 8.4 載入紋理
  136. 8.5 繪製立方體
  137. 8.6 旋轉立方體
  138. 8.7 移動3D空間的Camera
  139. 第九章 中等3D繪圖
  140. 9.1 載入網格(Mesh)
  141. 9.2 父子物件(Parenting Object)
  142. 9.3 製作動畫網格
  143. 9.4 繪製的批次處理(Batching)
  144. 9.5 建構可移動Camera物件
  145. 第十章 高等3D繪圖
  146. 10.1 著色器
  147. 10.2 運用材質 (1/2)
  148. 10.2 運用材質 (2/2)
  149. 10.3 用著色器紋飾物件
  150. 10.4 場景的照明
  151. 10.5 使用法線貼圖(Normal Mapping)
  152. 10.6 透明物件
  153. 10.7 添加鏡面高光(Specular Highlights)
  154. 10.8 添加卡通著色(Toon Shading)
  155. 第十一章 Scene Kit
  156. 11.1 設置Scene Kit
  157. 11.2 用Scene Kit建構場景(Scene)
  158. 11.3 顯示3D物件
  159. 11.4 運用Scene Kit的Cameras
  160. 11.5 建構光線
  161. 11.6 製作動畫物件
  162. 11.7 運用文字節點
  163. 11.8 自訂材質(Material)
  164. 11.9 紋飾(Texturing)物件
  165. 11.10 法線貼圖(Normal Mapping)
  166. 11.11 牽制物件
  167. 11.12 載入COLLADA檔案
  168. 11.13 運用3D物理
  169. 11.14 添加反射
  170. 11.15 點擊測試(Hit-Testing)場景
  171. 第十二章 人工智慧與行為
  172. 12.1 改良Swift的向量數學運算
  173. 12.2 向某個位置移動
  174. 12.3 依循某個路徑移動
  175. 12.4 攔截某個移動中的目標
  176. 12.5 逃離阻礙
  177. 12.6 選定目標
  178. 12.7 轉向某個位置點
  179. 12.8 找出可以掩護的位置點
  180. 12.9 計算物件採取的路徑
  181. 12.10 判定下一個最佳行動
  182. 12.11 確認某個物件是否可以看到另一個物件
  183. 12.12 使用AI加強遊戲的設計
  184. 第十三章 網路與社交媒體
  185. 13.1 使用Game Center
  186. 13.2 取得已登入之玩家的相關資訊
  187. 13.3 取得其他玩家的相關資訊
  188. 13.4 利用Game Center實作排行榜與挑戰紀錄
  189. 13.5 使用Game Center尋找其他玩家參與競賽
  190. 13.6 建構、銷毀與同步網路上的物件
  191. 13.7 內插計算(Interpolating)物件狀態
  192. 13.8 玩家斷線與重返競賽的處理
  193. 13.9 運用Game Kit實作回合制遊戲操作
  194. 13.10 將文字和圖片分享到社交媒體網站
  195. 13.11 儲存Game Center保留的遊戲內容
  196. 13.12 實作實用的iOS網路
  197. 13.13 實作實用的社交網路
  198. 第十四章 遊戲控制器與外接螢幕
  199. 14.1 偵測遊戲控制器
  200. 14.2 從遊戲控制器取得輸入
  201. 14.3 透過AirPlay顯示遊戲內容
  202. 14.4 使用外接螢幕
  203. 14.5 針對不同類型的螢幕來設計實用的繪圖
  204. 14.6 拖放(Dragging and Dropping) (1/2)
  205. 14.6 拖放(Dragging and Dropping) (2/2)
  206. 第十五章 效能與除錯
  207. 15.1 提高畫格更新率(Frame Rate)
  208. 15.2 快速載入遊戲關卡
  209. 15.3 處理記憶體不足的議題
  210. 15.4 追蹤程式的停擺情況
  211. 15.5 運用壓縮紋理
  212. 15.6 運用監視點(Watchpoints)
  213. 15.7 實用的紀錄(Logging)
  214. 15.8 使用語音的中斷點
  215. 索引 (1/4)
  216. 索引 (2/4)
  217. 索引 (3/4)
  218. 索引 (4/4)
  219. 關於作者
  220. 出版記事

Product information

  • Title: iOS Swift 遊戲程式開發錦囊妙計 第二版
  • Author(s): Jonathon Manning, Paris Buttfield-Addison
  • Release date: January 2016
  • Publisher(s): GoTop Information, Inc.
  • ISBN: None