《libGDX移動遊戲開發從入門到精通》是2016年出版的圖書,作者是黃俊東。
基本介紹
- 書名:libGDX移動遊戲開發從入門到精通
- 作者:黃俊東
- ISBN:978-7-115-40799-3
- 頁數:289頁
- 定價:49元
- 開本:16
基本簡介,目錄,
基本簡介
隨著移動網際網路的快速發展,移動端的遊戲開發已經成為發展迅速、市場潛力巨大、前景誘人的開發方向。作為一種遊戲引擎,libGDX讓更多夢想加入遊戲開發的人圓夢。本書全面介紹了使用libGDX進行遊戲開發時所需要用到的知識,其中包括libGDX的詳細介紹、libGDX的UI編程、libGDX的配套開發工具、libGDX 中所遇到的一些問題的解決方案。
本書並不局限於介紹libGDX編程的各種理論知識,而是從“項目驅動”的角度來講授理論,全書給出了豐富的實例,這些示範性的實例既可幫助讀者更好地理解各知識點在實際開發中的套用,也可供讀者在實際開發時作為參考。本書還提供了兩個實用的案例:撿金幣項目和2048項目,具有很高的參考價值。
本書實用性強,內容詳細,不僅適合有一定經驗的開發者,對於那些沒有經驗的開發者來說,也是一本很好的入門指南。
本書實用性強,內容詳細,不僅適合有一定經驗的開發者,對於那些沒有經驗的開發者來說,也是一本很好的入門指南。
目錄
第1章 libGDX簡介 1
1.1 libGDX介紹 1
1.1.1 libGDX的特點 1
1.1.2 libGDX中的工具 3
1.1.3 libGDX的歷史 5
1.1.4 我的libGDX版本 5
1.2 搭建libGDX開發環境 5
1.2.1 libGDX下載 6
1.2.2 Android項目的新建 7
1.2.3 libGDX的安裝 9
1.3 開始第一個libGDX遊戲 11
1.3.1 第一個HelloWorld程式的編寫 11
1.3.2 在Android設備上調試 15
1.3.3 桌面調試環境的搭建 17
1.3.4 HelloWorld程式的簡單分析 22
1.4 運行libGDX的官方Demo 23
1.4.1 libGDX的官網 23
1.4.2 Demo的下載演示 24
1.5 其他的一些準備工作 25
1.5.1 關聯Android源碼 25
1.5.2 libGDX源碼的關聯 28
1.5.3 直接打開.jar檔案的配置 30
第2章 libGDX的架構分析 34
2.1 生命周期 34
2.1.1 libGDX中生命周期的圖示 34
2.1.2 生命周期中各個函式的分析 35
2.1.3 實例:通過例子深刻理解生命
周期 35
2.2 模組 38
2.2.1 libGDX模組組成的圖示 38
2.2.2 libGDX模組的分析 39
2.3 運行環境的相關查詢 40
2.3.1 獲取目前的運行環境 40
2.3.2 獲取記憶體的消耗情況 41
2.4 日誌工具 41
2.4.1 Android中的日誌等級及輸出方法 41
2.4.2 libGDX中的日誌等級及輸出方法 42
2.4.3 一種方便的輸出日誌的方法 44
第3章 數據存儲 45
3.1 簡介 45
3.2 Android中SharedPreferences的使用 45
3.2.1 獲得一個SharedPreferences對象 46
3.2.2 從SharedPreferences獲取數據 46
3.2.3 往SharedPreferences 保存數據 46
3.2.4 實例:使用Android中的
SharedPreferences來實現
存取數據 47
3.3 libGDX對SharedPreferences的支持 49
3.3.1 獲得一個SharedPreferences數據 49
3.3.2 從SharedPreferences獲取數據 49
3.3.3 往SharedPreferences保存數據 49
3.3.4 實例:使用libGDX對
SharedPreferences的支持
來實現數據的存取 50
3.4 Android中操作XML形式的數據 51
3.4.1 XML的定義 51
3.4.2 XML的優缺點 52
3.4.3 Android中使用DOM來解析
XML形式的數據 52
3.4.4 Android中使用DOM來生成
XML形式的數據 55
3.4.5 Android中使用SAX來解析
XML形式的數據 58
3.4.6 Android中使用SAX來生成
XML形式的數據 61
3.4.7 Android中使用PULL來解析
XML形式的數據 64
3.4.8 Android中使用PULL來生成
XML形式的數據 67
3.5 libGDX對XML的支持 70
3.5.1 使用libGDX中的接口將生成
XML形式的數據 70
3.5.2 使用libGDX中的接口解析
XML形式的數據 72
3.6 Android中操作JSON格式的數據 74
3.6.1 JSON的定義 74
3.6.2 JSON的優缺點 74
3.6.3 Android中JSON的原始解析
方法 75
3.6.4 Android中JSON的原始生成
方法 78
3.6.5 Android中使用Gson來解析
JSON形式的數據 79
3.6.6 Android中使用Gson來生成
JSON形式的數據 80
3.6.7 Android中使用FastJson來解析
JSON形式的數據 81
3.6.8 Android中使用FastJson來生成
JSON形式的數據 83
3.6.9 以上3種操作JSON格式數據的
方法的簡單比較 83
3.7 libGDX中對JSON格式數據的支持 83
3.7.1 使用libGDX中的API生成
JSON形式的數據 83
3.7.2 使用libGDX中的API解析
JSON形式的數據 86
3.8 XML與JSON的簡單比較 86
3.8.1 關於輕量級和重量級 86
3.8.2 關於數據格式編碼及解析難度 87
3.9 libGDX中的檔案處理 87
3.9.1 幾種檔案存儲路徑 88
3.9.2 檢查存儲路徑是否可用 88
3.9.3 獲得一個FileHandle實例 89
3.9.4 對FileHandle的常見操作 89
3.9.5 讀取檔案 90
3.9.6 寫檔案 90
3.9.7 使用FileHandle來刪除、拷貝、
移動、重命名檔案 90
第4章 libGDX中的UI編程 92
4.1 繪製的基礎—SpriteBatch類的介紹 92
4.1.1 SpriteBatch的功能 92
4.1.2 基本API 92
4.2 中文字元的顯示—hiero工具的
介紹與基本使用 92
4.2.1 hiero工具的下載 93
4.2.2 hiero的功能界面剖析 93
4.2.3 利用hiero生成程式中要用的
字型檔 94
4.3 文本信息的顯示—BitmapFont類的
基本使用 95
4.3.1 BitmapFont的功能 95
4.3.2 基本API 95
4.3.3 實例:使用BitmapFont來顯示
一段文本信息 95
4.4 自定義的中文字型的顯示
—TTF字型檔的介紹與使用 97
4.4.1 功能 97
4.4.2 基本API 97
4.4.3 使用優美字型前的準備 98
4.4.4 實例:顯示一段帥氣的文本 98
4.5 圖片的顯示(1)—Texture類的介紹
及基本使用 100
4.5.1 功能 100
4.5.2 基本API 100
4.5.3 實例:使用SpriteBatch和Texture
在螢幕中顯示一張圖片 101
4.6 圖片的顯示(2)—TextureRegion
類的介紹與基本使用 103
4.6.1 功能 103
4.6.2 基本API 103
4.6.3 實例:使用SpriteBatch和
TextureRegion在螢幕中顯示
一張圖片 104
4.7 圖片的顯示(3)—Sprite類的介紹
與基本使用 105
4.7.1 功能 105
4.7.2 基本API 105
4.7.3 實例:旋轉的精靈 106
4.8 libGDX中的合圖(1)—合圖工具
TexturePacker 的介紹與基本使用 107
4.8.1 TexturePacker的下載 108
4.8.2 TexturePacker功能界面剖析 108
4.8.3 利用TexturePacker進行合圖 109
4.9 libGDX中的合圖(2)—TextureAtlas
類的介紹與基本使用 111
4.9.1 功能 111
4.9.2 基本API 111
4.9.3 實例:使用TextureAtlas後的
圖片的使用 111
4.10 自定義動畫—Animation類的介紹
與基本使用 113
4.10.1 功能 113
4.10.2 基本API 113
4.10.3 實例:奔跑的小人 114
4.11 libGDX中的粒子編輯器(1)
—Particle-Editor的介紹與基本使用 116
4.11.1 下載 116
4.11.2 功能界面剖析 117
4.11.3 利用粒子編輯器生成相應檔案 118
4.12 libGDX中的粒子編輯器(2)
—ParticleEffect類的介紹與基本
使用 119
4.12.1 功能 119
4.12.2 基本API 119
4.12.3 實例:類似於微信的煙火效果 119
第5章 libGDX中的常見UI組件 122
5.1 演員與舞台的簡單介紹 122
5.2 文本信息的顯示—Label、LabelStyle類的介紹與基本使用 122
5.2.1 功能 122
5.2.2 基本API 122
5.2.3 實例:用Label顯示一段文本
信息 123
5.3 圖片的顯示—Image類的介紹與
基本使用 124
5.3.1 功能 124
5.3.2 基本API 125
5.3.3 實例:實現一個“旋轉的飛機” 125
5.4 Image生成的另外一種方式—Pixmap
類的介紹與基本使用 126
5.4.1 功能 127
5.4.2 基本API 127
5.4.3 實例:使用Pixmap來畫多種
幾何圖形 127
5.4.4 實例:使用Pixmap來生成
塗抹功能 129
5.4.5 Pixmap在使用時需要注意的
問題—白屏問題 133
5.5 圖片翻轉的兩種方式 134
5.5.1 圖片翻轉的第一種方式—
使用TextureRegion的flip( ) 134
5.5.2 圖片翻轉的第二種方式—
通過SpriteBatch的draw()方法 135
5.6 滾動條—ScrollPane的介紹與基本
使用 137
5.6.1 功能 137
5.6.2 基本API 137
5.6.3 實例:使用ScrollPane實現一個
選關界面 137
5.7 遊戲中的背景移動 139
5.7.1 原理分析 139
5.7.2 實現天天打飛機中的“背景
移動” 141
5.8 演員的常見動畫的介紹與基本使用 143
5.8.1 旋轉動畫—rotateTo與rotateBy 144
5.8.2 位移動畫—moveTo與moveBy 144
5.8.3 透明度漸變動畫—fadeIn()
與fadeOut() 145
5.8.4 縮放動畫—scaleTo()與scaleBy() 145
5.8.5 組合動畫—順序動畫與並行
動畫 145
5.8.6 實例:Tween動畫的綜合例子 146
5.9 按鈕—Button類的介紹與基本使用 148
5.9.1 功能 148
5.9.2 基本API 148
5.9.3 實例:使用Button來控制一個
loading圖片 149
5.10 遊戲搖桿—TouchPad的介紹與
基本使用 153
5.10.1 功能 153
5.10.2 基本API 154
5.10.3 實例:使用遊戲搖桿控制
遊戲元素 155
5.11 滑塊—Slider的介紹與基本使用 159
5.11.1 功能 159
5.11.2 基本API 160
5.11.3 實例:使用滑塊Slider來控制
遊戲元素的縮放 161
5.12 分割視窗—SplitPane的介紹與
基本使用 165
5.12.1 功能 166
5.12.2 基本API 166
5.12.3 實例:使用分割視窗SplitPane
來實現一個分割視窗 167
5.13 複選框—CheckBox的介紹與基本
使用 170
5.13.1 功能 171
5.13.2 基本API 171
5.13.3 實例:使用複選框CheckBox
來控制畫面的切換 172
5.14 列表—List的介紹與基本使用 176
5.14.1 功能 176
5.14.2 基本API 177
5.14.3 實例:使用列表List來顯示
內容 178
5.15 文本輸入框—TextField的介紹與
基本使用 181
5.15.1 功能 181
5.15.2 基本API 181
5.15.3 實例:使用文本輸入框TextField
來實現文本信息的輸入 183
第6章 libGDX中的事件處理與音效 188
6.1 InputProcessor的介紹與基本使用 188
6.1.1 InputMultiplexer的介紹與基本
使用 189
6.1.2 實例:使用按鈕來操控滾動條 190
6.2 振動器的介紹與使用 192
6.2.1 準備工作—添加相應的許可權 192
6.2.2 基本API 193
6.2.3 實例:按按鈕觸發振動 193
6.3 back鍵和menu鍵的捕捉 194
6.4 短音頻檔案的處理—Sound類的介紹
與基本使用 195
6.4.1 功能 195
6.4.2 基本API 195
6.4.3 實例:給按鈕添加單擊聲音 195
6.5 長音頻檔案的處理—Music類的介紹
與基本使用 196
6.5.1 功能 197
6.5.2 基本API 197
6.5.3 實例:單擊某一個按鈕播放音樂 197
第7章 資源載入器、遊戲界面的跳轉以及
物理引擎 199
7.1 資源載入器—AssetManager類的介紹
與基本使用 199
7.1.1 功能 199
7.1.2 基本API 200
7.1.3 實例:遊戲中的loading界面
第一部分 200
7.1.4 實例:遊戲中的loading界面
第二部分 203
7.2 遊戲界面的跳轉 204
7.2.1 第一種方式—隱藏其中一個,
顯示另外一個 204
7.2.2 第二種方式—setScreen() 206
7.3 libGDX中的物理引擎—Box2D
基礎 209
7.3.1 基礎類概覽 209
7.3.2 基礎類的詳細介紹 210
7.3.3 實例:下降的小球與磚塊 213
第8章 libGDX中的UI編輯器 216
8.1 讓CocosStudio成為libGDX的UI
編輯器 216
8.2 CocosStudio的UI編輯器的基本
使用 217
8.2.1 新建項目 217
8.2.2 調整螢幕大小 218
8.2.3 導入資源 219
8.2.4 擺放素材 219
8.2.5 設定元素屬性 220
8.2.6 修改元素的名字 221
8.2.7 保存項目 221
8.3 解析CocosStudio的UI檔案 221
8.3.1 找到數據檔案 221
8.3.2 簡單分析數據檔案 222
8.3.3 編寫代碼解析JSON檔案 223
8.3.4 CocosStudio解析工具類的基本
用法 228
8.3.5 讓CocosStudio UI編輯器的數據
在libGDX中完美運行 229
8.4 CocosStudio生成的JSON檔案中的
隱患及解決方案 231
8.4.1 隱患分析 231
8.4.2 解決方案 231
第9章 小遊戲實戰—撿金幣 232
9.1 遊戲的感性認識 232
9.1.1 遊戲運行效果圖 232
9.1.2 組成分析 233
9.2 金幣、背景的實現的原理分析 233
9.3 遊戲成就的原理分析及遊戲中的
碰撞檢測 233
9.3.1 檢測的簡單介紹 234
9.3.2 遊戲成就的原理分析 234
9.4 成功界面與失敗界面的原理分析 234
9.5 剩餘時間的原理分析 235
9.6 代碼實現 235
9.6.1 金幣(Jinbi) 邏輯體的實現 235
9.6.2 工具類(Utils)的實現 237
9.6.3 背景(BgImage)邏輯體的實現 237
9.6.4 遊戲主邏輯體MyGame 239
9.6.5 Android與libGDX互動類
MainActivity的編寫 244
第10章 休閒類遊戲—2048 245
10.1 2048的由來及功能概述 245
10.1.1 2048的由來 245
10.1.2 功能簡介 245
10.2 遊戲的策劃及準備工作 247
10.2.1 遊戲的策劃 247
10.2.2 Android平台下遊戲的準備工作 247
10.3 遊戲的架構 248
10.3.1 遊戲中用到的主要技術 248
10.3.2 各類的簡要介紹 248
10.3.3 遊戲的框架簡介 249
10.3.4 遊戲中核心邏輯的幾個要點 250
10.4 遊戲程式入口的設計與實現 251
10.4.1 MainActivity的實現 251
10.4.2 MyGame類的實現 252
10.5 遊戲主界面GameScreen的設計與
實現 253
10.5.1 遊戲主界面的框架設計 253
10.5.2 遊戲主界面GameScreen的
實現 257
10.6 遊戲中所涉及的各個邏輯體 270
10.6.1 資源管理類Assets的設計 270
10.6.2 資源管理類Assets的實現 271
10.6.3 遊戲中的常量類Contants 272
10.6.4 遊戲中分數邏輯體Score類的
設計與實現 273
10.6.5 每種分值對應的顏色的邏輯體
Square的設計 274
10.6.6 Square類的實現 275
10.6.7 分數格子邏輯體Cell類的設計 279
10.6.8 分數格子邏輯體Cell類的實現 280
10.6.9 數據存儲與恢復邏輯體Prefs
的設計 285
10.6.10 數據存儲與恢復邏輯體Prefs
的實現 285
10.7 遊戲的最佳化與改進 289