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/3)
- 前言 (2/3)
- 前言 (3/3)
- 目錄 (1/2)
- 目錄 (2/2)
- 第一章 遊戲布局
- 1.1 布局遊戲引擎(Engine)
- 1.2 繼承式(Inheritance-Based)的遊戲布局
- 1.3 元件式(Component-Based)的遊戲布局
- 1.4 計算差量時間(Delta Times)
- 1.5 偵測玩家進入與離開遊戲的時機
- 1.6 依據計時器的設定來更新遊戲內容
- 1.7 依據畫面的更動來更新遊戲內容
- 1.8 暫停遊戲
- 1.9 計算遊戲啟動到目前為止經過的時間
- 1.10 運用Closures
- 1.11 設計用來執行Closure的Method
- 1.12 運用操作佇列(Operation Queues)
- 1.13 遞延執行工作項目
- 1.14 執行相依(Depend)操作
- 1.15 用Closures過濾陣列內容
- 1.16 在遊戲運作時載入新資源(Assets)
- 1.17 添加遊戲的單元測試(Unit Tests)
- 1.18 2D網格(Grids)
- 第二章 Views與選單
- 2.1 運用Storyboards (1/2)
- 2.1 運用Storyboards (2/2)
- 2.2 建構View Controllers (1/2)
- 2.2 建構View Controllers (2/2)
- 2.3 使用Segues切換畫面
- 2.4 使用Constraints來布局Views
- 2.5 在遊戲專案中添加圖片
- 2.6 裁切用於按鈕的圖片
- 2.7 用UI Dynamics製作動畫Views
- 2.8 利用Core Animation移動圖片
- 2.9 旋轉圖片
- 2.10 製作彈出效果(Popping Effect)的動畫View
- 2.11 用UIAppearance來裝飾UI項目
- 2.12 3D旋轉的UIView
- 2.13 在遊戲內容上面覆疊選單
- 2.14 設計實用的遊戲選單
- 第三章 輸入
- 3.1 偵測View被觸碰的時機
- 3.2 偵測點擊手勢(Tap Gestures)
- 3.3 拖曳畫面中的圖片
- 3.4 偵測旋轉手勢
- 3.5 偵測捏合手勢(Pinching Gestures)
- 3.6 建構自訂的手勢
- 3.7 接收View自訂區域裡的觸點
- 3.8 偵測裝置的搖動(Shakes)
- 3.9 偵測裝置的傾斜(Tilt)情況
- 3.10 取得羅盤方位(Compass Heading)
- 3.11 存取玩家的位置
- 3.12 計算玩家的移動速度
- 3.13 準確定位玩家鄰近的地標(Landmarks)
- 3.14 接收玩家位置變更時的通知
- 3.15 查找街道地址的GPS座標
- 3.16 查找玩家所在位置的街道地址
- 3.17 使用行動裝置作為車子的方向盤
- 3.18 偵測磁鐵(Magnets)
- 3.19 利用輸入改進遊戲的設計
- 第四章 音效
- 4.1 用AVAudioPlayer播放音效
- 4.2 用AVAudioRecorder錄音
- 4.3 運用多個音訊播放器
- 4.4 交叉混合音效
- 4.5 合成語音(Synthesizing Speech)
- 4.6 取得音樂App正在播放的內容資訊
- 4.7 偵測目前播放曲目的變更
- 4.8 控制音樂播放
- 4.9 開放玩家選擇音樂
- 4.10 協調其他應用程式的音訊
- 4.11 決定遊戲設計中音效的最佳使用方式
- 第五章 資料儲存
- 5.1 儲存遊戲的狀態
- 5.2 本機儲存高分排行(High Scores)
- 5.3 用iCloud儲存遊戲內容
- 5.4 使用iCloud的 Key-Value Store
- 5.5 載入結構化資訊
- 5.6 決定檔案或資料庫(Database)的使用時機
- 5.7 管理資源集合
- 5.8 將資訊儲存在NSUserDefaults
- 5.9 實作最佳資料儲存策略
- 5.10 遊戲裡的貨幣
- 第六章 2D繪圖與Sprite Kit
- 6.1 熟悉2D數學
- 6.2 建構Sprite Kit View
- 6.3 建構場景
- 6.4 添加Sprite
- 6.5 添加文字Sprite
- 6.6 確定可用的字型
- 6.7 引入自訂字型
- 6.8 場景轉場
- 6.9 移動Sprites與標籤
- 6.10 增加紋理圖Sprite
- 6.11 建構紋理圖集(Texture Atlases)
- 6.12 使用形狀節點
- 6.13 使用混合模式
- 6.14 利用圖片效果改變Sprites的繪製方式
- 6.15 使用貝茲路徑(Bézier Paths)
- 6.16 建構煙霧、火焰和其他粒子特效 (Particle Effects)
- 6.17 搖動螢幕
- 6.18 製作動畫Sprite
- 6.19 視差捲動(Parallax Scrolling) (1/2)
- 6.19 視差捲動(Parallax Scrolling) (2/2)
- 6.20 建構雜訊(Noise)圖片
- 第七章 物理學
- 7.1 回顧物理學的術語和定義
- 7.2 具有物理行為的Sprites
- 7.3 建構靜態與動態的物件
- 7.4 定義Collider形狀
- 7.5 設定速度
- 7.6 運用質量、尺寸與密度
- 7.7 建構場景裡的牆壁
- 7.8 控制重力
- 7.9 避免物件旋轉
- 7.10 控制物理模擬的時間
- 7.11 偵測碰撞
- 7.12 找尋物件
- 7.13 運用接合
- 7.14 運用力量
- 7.15 將推進器(Thrusters)加入物件中
- 7.16 建構爆炸效果
- 7.17 利用裝置的方向來控制重力
- 7.18 拖曳物件
- 7.19 建構汽車
- 第八章 3D繪圖
- 8.1 運用3D數學
- 8.2 建構GLKit繪圖環境(Context)
- 8.3 用OpenGL描繪正方形 (1/2)
- 8.3 用OpenGL描繪正方形 (2/2)
- 8.4 載入紋理
- 8.5 繪製立方體
- 8.6 旋轉立方體
- 8.7 移動3D空間的Camera
- 第九章 中等3D繪圖
- 9.1 載入網格(Mesh)
- 9.2 父子物件(Parenting Object)
- 9.3 製作動畫網格
- 9.4 繪製的批次處理(Batching)
- 9.5 建構可移動Camera物件
- 第十章 高等3D繪圖
- 10.1 著色器
- 10.2 運用材質 (1/2)
- 10.2 運用材質 (2/2)
- 10.3 用著色器紋飾物件
- 10.4 場景的照明
- 10.5 使用法線貼圖(Normal Mapping)
- 10.6 透明物件
- 10.7 添加鏡面高光(Specular Highlights)
- 10.8 添加卡通著色(Toon Shading)
- 第十一章 Scene Kit
- 11.1 設置Scene Kit
- 11.2 用Scene Kit建構場景(Scene)
- 11.3 顯示3D物件
- 11.4 運用Scene Kit的Cameras
- 11.5 建構光線
- 11.6 製作動畫物件
- 11.7 運用文字節點
- 11.8 自訂材質(Material)
- 11.9 紋飾(Texturing)物件
- 11.10 法線貼圖(Normal Mapping)
- 11.11 牽制物件
- 11.12 載入COLLADA檔案
- 11.13 運用3D物理
- 11.14 添加反射
- 11.15 點擊測試(Hit-Testing)場景
- 第十二章 人工智慧與行為
- 12.1 改良Swift的向量數學運算
- 12.2 向某個位置移動
- 12.3 依循某個路徑移動
- 12.4 攔截某個移動中的目標
- 12.5 逃離阻礙
- 12.6 選定目標
- 12.7 轉向某個位置點
- 12.8 找出可以掩護的位置點
- 12.9 計算物件採取的路徑
- 12.10 判定下一個最佳行動
- 12.11 確認某個物件是否可以看到另一個物件
- 12.12 使用AI加強遊戲的設計
- 第十三章 網路與社交媒體
- 13.1 使用Game Center
- 13.2 取得已登入之玩家的相關資訊
- 13.3 取得其他玩家的相關資訊
- 13.4 利用Game Center實作排行榜與挑戰紀錄
- 13.5 使用Game Center尋找其他玩家參與競賽
- 13.6 建構、銷毀與同步網路上的物件
- 13.7 內插計算(Interpolating)物件狀態
- 13.8 玩家斷線與重返競賽的處理
- 13.9 運用Game Kit實作回合制遊戲操作
- 13.10 將文字和圖片分享到社交媒體網站
- 13.11 儲存Game Center保留的遊戲內容
- 13.12 實作實用的iOS網路
- 13.13 實作實用的社交網路
- 第十四章 遊戲控制器與外接螢幕
- 14.1 偵測遊戲控制器
- 14.2 從遊戲控制器取得輸入
- 14.3 透過AirPlay顯示遊戲內容
- 14.4 使用外接螢幕
- 14.5 針對不同類型的螢幕來設計實用的繪圖
- 14.6 拖放(Dragging and Dropping) (1/2)
- 14.6 拖放(Dragging and Dropping) (2/2)
- 第十五章 效能與除錯
- 15.1 提高畫格更新率(Frame Rate)
- 15.2 快速載入遊戲關卡
- 15.3 處理記憶體不足的議題
- 15.4 追蹤程式的停擺情況
- 15.5 運用壓縮紋理
- 15.6 運用監視點(Watchpoints)
- 15.7 實用的紀錄(Logging)
- 15.8 使用語音的中斷點
- 索引 (1/4)
- 索引 (2/4)
- 索引 (3/4)
- 索引 (4/4)
- 關於作者
- 出版記事
Product information
- Title: iOS Swift 遊戲程式開發錦囊妙計 第二版
- Author(s):
- Release date: January 2016
- Publisher(s): GoTop Information, Inc.
- ISBN: None
You might also like
book
Android. Aplikacje wielowątkowe. Techniki przetwarzania
Ta książka w całości poświęcona jest korzystaniu z wątków na platformie Android. Dzięki niej poznasz przeróżne …
book
Beginning Xamarin Development for the Mac: Create iOS, watchOS, and Apple tvOS apps with Xamarin.iOS and Visual Studio for Mac
Develop apps for the iPhone, iPad, and Apple wearables using Visual Studio for the Mac. Learn …
article
Run Llama-2 Models Locally with llama.cpp
Llama is Meta’s answer to the growing demand for LLMs. Unlike its well-known technological relative, ChatGPT, …
book
Take Control of iOS 13 and iPadOS 13
Learn how to make the most of Apple’s mobile operating systems! Version 1.2, updated 6/25/2020 Whether …