LibGDX遊戲開發指南

LibGDX遊戲開發指南

這是一本由華中科技大學出版社於2017年2月出版發行的程式設計類圖書。

內容提要

《LibGDX遊戲開發指南(第二版)》是由華中科技大學出版社於2017年1月出版的圖書,原著是由Suryakumar Balakrishnan Nair[印]和Andress Oehlke[德]聯合編寫的《Learning LibGDX Game Development, Second Edition》一書。

本書被譽為學習LibGDX遊戲開發的最佳入門書籍,全書從零開始,完整的開發了一款2D橫軸遊戲,全面而又深入的講解了LibGDX的各大模組及遊戲開發的常見技術,比如:套用生命周期、資源打包、動畫、粒子特效、物理模擬(Box2D、Bullet)、音效、著色器等等。

作者介紹

Suryakumar Balakrishnan Nair畢業於科欽科技大學(Cochin University of Science and Technology),科欽是印度一所主攻計算機科學研究的大學。Suryakumar Balakrishnan Nair非常喜歡編程,而且經常將想法付諸實踐。他利用LibGDX框架為Android平台設計了一系列遊戲。除了編程之外,他還比較關注政治及環境問題。他是一名出色的Android遊戲開發者,供職於印度Csharks公司。

Andreas Oehlke是一名專業的軟體工程師和計算機科學家,他對Linux/UNIX設備研究深入。擁有計算機科學專業學士學位,他非常喜歡收集並重構硬體類似的一些軟體。對電子和計算機的極度痴迷一直是他的標籤。他的愛好包括遊戲開發、網路開發、軟體設計和新語言開發、嵌入式編程、體育運動及音樂製作等。他任職於德國一家金融機構。他曾在舊金山為CA公司擔任顧問,並從事遊戲開發工作。空餘時間,他為德國一家名為Gamerald的小公司分享開發經驗。

作品目錄

第1章 LibGDX簡介與項目創建 1
1.1 關於LibGDX 2
1.2 LibGDX 1.2.0的新特性 2
1.2.1 Graphics模組 2
1.2.2 Audio模組 3
1.2.3 Input模組 4
1.2.4 檔案I/O和存儲模組 4
1.2.5 數學與物理 4
1.2.6 實用模組 4
1.2.7 工具 5
1.3 進入社區 5
1.4 LibGDX的安裝與配置 5
1.4.1 安裝JDK 6
1.4.2 安裝Eclipse集成開發環境 9
1.4.3 下載LibGDX 10
1.4.4 安裝Android SDK 10
1.4.5 運行Eclipse IDE並安裝外掛程式 18
1.5 創建第一個LibGDX套用 23
1.5.1 使用舊版工具創建項目 24
1.5.2 使用新版工具創建基於Gradle構建的項目 32
1.6 gdx-setup與gdx-setup-ui 36
1.7 步入開發生涯 37
1.8 成功的關鍵在於計畫 39
1.9 第一個遊戲——Canyon Bunny 39
實現遊戲行為簡介 40
1.10 總結 41
第2章 跨平台開發——一次構建,多平台部署 42
2.1 demo套用——它們是如何在一起工作的 42
2.2 LibGDX後端 45
2.2.1 輕量級的Java遊戲庫 45
2.2.2 Android 46
2.2.3 WebGL 46
2.2.4 RoboVM(iOS後端) 46
2.3 LibGDX核心模組 47
2.3.1 套用模組 47
2.3.2 圖形模組 50
2.3.3 音頻模組 50
2.3.4 輸入模組 51
2.3.5 檔案模組 52
2.3.6 網路模組 52
2.4 LibGDX的套用生命周期和對應接口 52
2.5 啟動類 54
2.5.1 在桌面平台運行demo套用 54
2.5.2 在Android平台運行demo套用 56
2.5.3 在支持WebGL的瀏覽器上運行demo套用 60
2.5.4 在iOS設備上運行demo套用 64
2.6 demo套用代碼解析 68
2.6.1 主類代碼 69
2.6.2 調試器和代碼熱交換 73
2.7 總結 77
第3章 配置遊戲 78
3.1 創建Canyon Bunny項目 78
3.2 使用類圖分析Canyon Bunny遊戲 80
3.3 基礎部分 82
3.3.1 實現Constants類 82
3.3.2 實現CanyonBunnyMain類 83
3.3.3 實現WorldController類 83
3.3.4 實現WorldRenderer類 84
3.4 組織在一起 85
3.4.1 構建遊戲循環 85
3.4.2 添加測試精靈 88
3.4.3 添加調試控制 92
3.4.4 添加CameraHelper類 95
3.4.5 添加相機調試控制 96
3.5 總結 99
第4章 資源打包 100
4.1 替換Android套用圖示 100
4.2 替換iOS套用圖示 102
4.3 創建紋理集 103
4.4 資源的載入與跟蹤 108
4.5 組織資源 108
4.6 測試資源 114
4.7 處理關卡數據 117
4.8 總結 118
第5章 創建場景 119
5.1 創建遊戲對象 120
5.1.1 rock對象 121
5.1.2 mountains對象 123
5.1.3 water overlay對象 125
5.1.4 clouds對象 126
5.2 實現關卡載入器 128
5.3 組建遊戲世界 132
5.4 實現遊戲GUI 135
5.4.1 分數GUI 138
5.4.2 生命數GUI 139
5.4.3 GUI FPS計數器 139
5.4.4 渲染遊戲GUI 140
5.5 總結 140
第6章 添加演員 141
6.1 實現遊戲的演員對象 141
6.1.1 創建gold coin對象 143
6.1.2 創建feather對象 144
6.1.3 創建bunny head對象 145
6.1.4 更新rock對象 152
6.2 完成關卡載入器 152
6.3 添加遊戲邏輯 154
6.3.1 添加碰撞檢測系統 154
6.3.2 失去生命、結束遊戲以及限制相機的移動範圍 160
6.3.3 添加“GAME OVER”文本和feather圖示GUI 161
6.4 總結 163
第7章 選單和選項 165
7.1 多屏管理 165
7.2 探索Scene2D UI、TableLayout和skins 171
7.3 使用場景圖創建選單UI 172
7.4 創建選單螢幕 175
7.4.1 添加background層 179
7.4.2 添加對象層 179
7.4.3 添加Logo層 180
7.4.4 添加控制層 180
7.4.5 添加Options視窗層 181
7.5 創建Options視窗 185
使用遊戲配置 190
7.6 小結 192
第8章 特效 193
8.1 使用粒子系統創建複雜特效 193
8.2 創建灰塵粒子特效 198
8.3 移動雲朵 200
8.4 利用線性插值(Lerp)平滑運動 202
模擬石塊在水面漂浮 203
8.5 山丘滾動效果 204
8.6 增強遊戲GUI 205
8.6.1 失去生命事件 206
8.6.2 分數遞增事件 207
8.7 總結 209
第9章 螢幕切換 210
9.1 螢幕切換技術 210
9.1.1 實現切換效果 217
9.1.2 關於插值算法的研究 217
9.1.3 創建fade切換效果 218
9.1.4 創建slide切換效果 220
9.1.5 創建slice切換效果 223
9.2 總結 225
第10章 音效管理 226
10.1 播放音樂和音效 226
10.1.1 Sound接口 227
10.1.2 Music接口 228
10.2 直接訪問音頻設備 228
10.2.1 AudioDevice接口 229
10.2.2 AudioRecorder接口 229
10.3 使用聲音發生器 230
10.3.1 sfxr聲音發生器 230
10.3.2 cfxr聲音發生器 231
10.3.3 bfxr聲音發生器 231
10.4 為Canyon Bunny遊戲添加背景音樂和聲音特效 232
10.5 總結 239
第11章 高級技術 240
11.1 使用Box2D模擬物理 240
11.1.1 Box2D的基礎概念 241
11.1.2 Physics Body Editor 243
11.1.3 為項目添加Box2D 243
11.1.4 為Canyon Bunny創建“rain carrots” 246
11.1.5 實現rain carrots 251
11.2 在LibGDX中使用著色器 260
11.2.1 創建單色過濾著色程式 261
11.2.2 為Canyon Bunny遊戲添加著色程式 262
11.3 添加可選輸入 265
11.4 總結 268
第12章 動畫 269
12.1 通過動作操作演員 269
12.1.1 操作演員對象的動作類 270
12.1.2 控制時間和順序的動作 271
12.2 選單螢幕動畫 271
12.2.1 gold coins動畫和bunny head動畫 272
12.2.2 為選單按鈕和選項視窗添加動畫 273
12.3 利用序列圖片創建動畫 275
12.3.1 打包動畫資源 276
12.3.2 選擇動畫的播放模式 277
12.4 為遊戲螢幕添加幀動畫 277
12.4.1 定義和準備新的動畫 278
12.4.2 為gold coin對象添加動畫 280
12.4.3 為bunny head對象添加動畫 281
12.5 總結 285
第13章 3D基礎 286
13.1 光源 286
13.2 環境和材質 287
13.3 LibGDX 3D 基礎 287
13.3.1 創建項目 287
13.3.2 相機 290
13.3.3 Model和ModelInstance類 291
13.3.4 ModelBatch類 291
13.3.5 Environment類 291
13.4 載入模型 292
模型格式和FBX轉換器 294
13.5 3D frustum culling技術 295
13.6 ray picking技術 299
13.7 總結 301
第14章 Bullet物理引擎 302
14.1 關於Bullet 302
14.2 Bullet基本概念 303
14.2.1 剛體 303
14.2.2 碰撞形狀 304
14.2.3 MotionStates 304
14.2.4 物理模擬 305
14.3 LibGDX Bullet 305
14.3.1 創建項目 305
14.3.2 創建基礎3D場景 306
14.3.3 初始化Bullet 310
14.3.4 創建動態世界 310
14.3.5 自定義MotionState類 311
14.3.6 ContactListener類 312
14.4 添加剛體 312
14.5 步進世界 313
14.5.1 Bullet光線投射技術 314
14.5.2 測試遊戲 314
14.6 添加陰影 325
14.7 總結

相關詞條

相關搜尋

熱門詞條

聯絡我們