libGDX移動遊戲開發從入門到精通 libGDX移动游戏开发从入门到精通(异步图书) (游戏设计与开发)

黃俊東

  • 出版商: 人民郵電
  • 出版日期: 2016-01-01
  • 定價: $294
  • 售價: 8.5$250
  • 語言: 簡體中文
  • 頁數: 289
  • ISBN: 7115407991
  • ISBN-13: 9787115407993
  • 相關分類: 遊戲設計 Game-design

已絕版

買這商品的人也買了...

商品描述

<內容提要>

 

隨著移動因特網的快速發展,移動端的遊戲開發已經成為發展迅速、市場潛力巨大、前景誘人的開發方向。作為一種遊戲引擎,libGDX讓更多夢想加入遊戲開發的人圓夢。本書全面介紹了使用libGDX進行遊戲開發時所需要用到的知識,其中包括libGDX的詳細介紹、libGDX的UI編程、libGDX的配套開發工具、libGDX中所遇到的一些問題的解決方案。

本書並不局限於介紹libGDX編程的各種理論知識,而是從“項目驅動”的角度來講授理論,全書給出了豐富的實例,這些示範性的實例既可幫助讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考。本書還提供了兩個實用的案例:撿金幣項目和2048項目,具有很高的參考價值。

本書實用性強,內容詳細,不僅適合有一定經驗的開發者,對於那些沒有經驗的開發者來說,也是一本很好的入門指南。

 

<目錄>

 

第1章libGDX簡介t1 

1.1 libGDX介紹t1 

1.1.1 libGDX的特點t1 

1.1.2 libGDX中的工具t3 

1.1.3 libGDX的歷史t5 

1.1.4我的libGDX版本t5 

1.2搭建libGDX開發環境t5 

1.2.1 libGDX下載t6 

1.2.2 Android項目的新建t7 

1.2.3 libGDX的安裝t9 

1.3開始個libGDX遊戲t11 

1.3.1個HelloWorld程序的編寫t11 

1.3.2在Android設備上調試t15 

1.3.3桌面調試環境的搭建t17 

1.3.4 HelloWorld程序的簡單分析t22 

1.4運行libGDX的官方Demot23 

1.4.1 libGDX的官網t23 

1.4.2 Demo的下載演示t24 

1.5其他的一些準備工作t25 

1.5.1關聯Android源碼t25 

1.5.2 libGDX源碼的關聯t28 

1.5.3直接打開.jar文件的配置t30 

第2章libGDX的架構分析t34 

2.1生命週期t34 

2.1.1 libGDX中生命週期的圖示t34 

2.1.2生命週期中各個函數的分析t35 

2.1.3實例:通過例子深刻理解生命

週期t35 

2.2模塊t38 

2.2.1 libGDX模塊組成的圖示t38 

2.2.2 libGDX模塊的分析t39 

2.3運行環境的相關查詢t40 

2.3.1獲取目前的運行環境t40 

2.3.2獲取內存的消耗情況t41 

2.4日誌工具t41 

2.4.1 Android中的日誌等級及輸出方法t41 

2.4.2 libGDX中的日誌等級及輸出方法t42 

2.4.3一種方便的輸出日誌的方法t44 

第3章數據存儲t45 

3.1簡介t45 

3.2 Android中SharedPreferences的使用t45 

3.2.1獲得一個SharedPreferences對象t46 

3.2.2從SharedPreferences獲取數據t46 

3.2.3往SharedPreferences保存數據t46 

3.2.4實例:使用Android中的

SharedPreferences來實現

存取數據t47 

3.3 libGDX對SharedPreferences的支持t49 

3.3.1獲得一個SharedPreferences數據t49 

3.3.2從SharedPreferences獲取數據t49 

3.3.3往SharedPreferences保存數據t49 

3.3.4實例:使用libGDX對

SharedPreferences的支持

來實現數據的存取t50 

3.4 Android中操作XML形式的數據t51 

3.4.1 XML的定義t51 

3.4.2 XML的優缺點t52 

3.4.3 Android中使用DOM來解析

XML形式的數據t52 

3.4.4 Android中使用DOM來生成

XML形式的數據t55 

3.4.5 Android中使用SAX來解析

XML形式的數據t58 

3.4.6 Android中使用SAX來生成

XML形式的數據t61 

3.4.7 Android中使用PULL來解析

XML形式的數據t64 

3.4.8 Android中使用PULL來生成

XML形式的數據t67 

3.5 libGDX對XML的支持t70 

3.5.1使用libGDX中的接口將生成

XML形式的數據t70 

3.5.2使用libGDX中的接口解析

XML形式的數據t72 

3.6 Android中操作JSON格式的數據t74 

3.6.1 JSON的定義t74 

3.6.2 JSON的優缺點t74 

3.6.3 Android中JSON的原始解析

方法t75 

3.6.4 Android中JSON的原始生成

方法t78 

3.6.5 Android中使用Gson來解析

JSON形式的數據t79 

3.6.6 Android中使用Gson來生成

JSON形式的數據t80 

3. 6.7 Android中使用FastJson來解析

JSON形式的數據t81 

3.6.8 Android中使用FastJson來生成

JSON形式的數據t83 

3.6.9以上3種操作JSON格式數據的

方法的簡單比較t83 

3. 7 libGDX中對JSON格式數據的支持t83 

3.7.1使用libGDX中的API生成

JSON形式的數據t83 

3.7.2使用libGDX中的API解析

JSON形式的數據t86 

3.8 XML與JSON的簡單比較t86 

3.8.1關於輕量級和重量級t86 

3.8.2關於數據格式編碼及解析難度t87 

3.9 libGDX中的文件處理t87 

3.9.1幾種文件存儲路徑t88 

3. 9.2檢查存儲路徑是否可用t88 

3.9.3獲得一個FileHandle實例t89 

3.9.4對FileHandle的常見操作t89 

3.9.5讀取文件t90 

3.9.6寫文件t90 

3.9 .7使用FileHandle來刪除、拷貝、

移動、重命名文件t90 

第4章libGDX中的UI編程t92 

4.1繪製的基礎—SpriteBatch類的介紹t92 

4.1.1 SpriteBatch的功能t92 

4.1.2基本APIt92 

4.2中文字符的顯示—hiero工具的

介紹與基本使用t92 

4.2.1 hiero工具的下載t93 

4.2.2 hiero的功能界面剖析t93 

4.2.3利用hiero生成程序中要用的

字體文件t94 

4.3文本信息的顯示—BitmapFont類的

基本使用t95 

4.3.1 BitmapFont的功能t95 

4.3.2基本APIt95 

4.3.3實例:使用BitmapFont來顯示

一段文本信息t95 

4.4自定義的中文字體的顯示

—TTF字庫的介紹與使用t97 

4.4.1功能t97 

4.4.2基本APIt97 

4.4.3使用優美字體前的準備t98 

4.4.4實例:顯示一段帥氣的文本t98 

4.5圖片的顯示(1)—Texture類的介紹

及基本使用t100 

4.5.1功能t100 

4.5.2基本APIt100 

4.5.3實例:使用SpriteBatch和Texture 

在屏幕中顯示一張圖片t101 

4.6圖片的顯示(2)—TextureRegion 

類的介紹與基本使用t103 

4.6.1功能t103 

4.6.2基本APIt103 

4.6.3實例:使用SpriteBatch和

TextureRegion在屏幕中顯示

一張圖片t104 

4.7圖片的顯示(3)—Sprite類的介紹

與基本使用t105 

4.7.1功能t105 

4.7.2基本APIt105 

4.7.3實例:旋轉的精靈t106 

4.8 libGDX中的合圖(1)—合圖工具

TexturePacker的介紹與基本使用t107 

4.8.1 TexturePacker的下載t108 

4.8.2 TexturePacker功能界面剖析t108 

4.8.3利用TexturePacker進行合圖t109 

4.9 libGDX中的合圖(2)—TextureAtlas 

類的介紹與基本使用t111 

4.9.1功能t111 

4.9.2基本APIt111 

4.9.3實例:使用TextureAtlas後的

圖片的使用t111 

4.10自定義動畫—Animation類的介紹

與基本使用t113 

4.10.1功能t113 

4.10.2基本APIt113 

4.10.3實例:奔跑的小人t114 

4.11 libGDX中的粒子編輯器(1)

—Particle-Editor的介紹與基本使用t116 

4.11.1下載t116 

4.11.2功能界面剖析t117 

4.11.3利用粒子編輯器生成相應文件t118 

4.12 libGDX中的粒子編輯器(2)

—ParticleEffect類的介紹與基本

使用t119 

4.12.1功能t119 

4.12.2基本APIt119 

4.12.3實例:類似於微信的煙火效果t119 

第5章libGDX中的常見UI組件t122 

5.1演員與舞臺的簡單介紹t122 

5.2文本信息的顯示—Label、LabelStyle類的介紹與基本使用t122 

5.2.1功能t122 

5.2.2基本APIt122 

5.2. 3實例:用Label顯示一段文本

信息t123 

5.3圖片的顯示—Image類的介紹與

基本使用t124 

5.3.1功能t124 

5.3.2基本APIt125 

5.3.3實例:實現一個“旋轉的飛機”t125 

5.4 Image生成的另外一種方式—Pixmap 

類的介紹與基本使用t126 

5.4.1功能t127 

5.4.2基本APIt127 

5.4.3實例:使用Pixmap來畫多種

幾何圖形t127 

5.4.4實例:使用Pixmap來生成

塗抹功能t129 

5.4.5 Pixmap在使用時需要註意的

問題—白屏問題t133 

5.5圖片翻轉的兩種方式t134 

5.5.1圖片翻轉的種方式— 

使用TextureRegion的flip( )t134 

5.5.2圖片翻轉的第二種方式— 

通過SpriteBatch的draw()方法t135 

5.6滾動條—ScrollPane的介紹與基本

使用t137 

5.6 .1功能t137 

5.6.2基本APIt137 

5.6.3實例:使用ScrollPane實現一個

選關界面t137 

5.7遊戲中的背景移動t139 

5.7.1原理分析t139 

5.7.2實現天天打飛機中的“背景

移動”t141 

5.8演員的常見動畫的介紹與基本使用t143 

5.8.1旋轉動畫—rotateTo與rotateByt144 

5.8.2位移動畫—moveTo與moveByt144 

5.8.3透明度漸變動畫—fadeIn() 

與fadeOut()t145 

5.8.4縮放動畫—scaleTo()與scaleBy()t145 

5.8.5組合動畫—順序動畫與並行

動畫t145 

5.8.6實例:Tween動畫的綜合例子t146 

5.9按鈕—Button類的介紹與基本使用t148 

5.9.1功能t148 

5.9.2基本APIt148 

5.9.3實例:使用Button來控制一個

loading圖片t149 

5.10遊戲搖桿—TouchPad的介紹與

基本使用t153 

5.10.1功能t153 

5.10.2基本APIt154 

5.10.3實例:使用遊戲搖桿控制

遊戲元素t155 

5.11滑塊—Slider的介紹與基本使用t159 

5.11.1功能t159 

5.11.2基本APIt160 

5.11.3實例:使用滑塊Slider來控制

遊戲元素的縮放t161 

5.12分割窗口—SplitPane的介紹與

基本使用t165 

5.12 .1功能t166 

5.12.2基本APIt166 

5.12.3實例:使用分割窗口SplitPane 

來實現一個分割窗口t167 

5.13複選框—CheckBox的介紹與基本

使用t170 

5.13.1功能t171 

5 .13.2基本APIt171 

5.13.3實例:使用複選框CheckBox 

來控制畫面的切換t172 

5.14列表—List的介紹與基本使用t176 

5.14.1功能t176 

5.14.2基本APIt177 

5.14.3實例:使用列表List來顯示

內容t178 

5.15文本輸入框—TextField的介紹與

基本使用t181 

5.15.1功能t181 

5.15.2基本APIt181 

5.15.3實例:使用文本輸入框TextField 

來實現文本信息的輸入t183 

第6章libGDX中的事件處理與音效t188 

6.1 InputProcessor的介紹與基本使用t188 

6.1.1 InputMultiplexer的介紹與基本

使用t189 

6.1.2實例:使用按鈕來操控滾動條t190 

6.2振動器的介紹與使用t192 

6.2.1準備工作—添加相應的權限t192 

6.2.2基本APIt193 

6.2.3實例:按按鈕觸發振動t193 

6.3 back鍵和menu鍵的捕捉t194 

6.4短音頻文件的處理—Sound類的介紹

與基本使用t195 

6.4.1功能t195 

6.4.2基本APIt195 

6.4.3實例:給按鈕添加單擊聲音t195 

6.5長音頻文件的處理—Music類的介紹

與基本使用t196 

6.5.1功能t197 

6.5.2基本APIt197 

6.5.3實例:單擊某一個按鈕播放音樂t197 

第7章資源加載器、遊戲界面的跳轉以及

物理引擎t199 

7.1資源加載器—AssetManager類的介紹

與基本使用t199 

7.1.1功能t199 

7.1.2基本APIt200 

7.1 .3實例:遊戲中的loading界面

部分t200 

7.1.4實例:遊戲中的loading界面

第二部分t203 

7.2遊戲界面的跳轉t204 

7.2.1種方式—隱藏其中一個,

顯示另外一個t204 

7.2.2第二種方式—setScreen()t206 

7.3 libGDX中的物理引擎—Box2D 

基礎t209 

7.3.1基礎類概覽t209 

7.3.2基礎類的詳細介紹t210 

7. 3.3實例:下降的小球與磚塊t213 

第8章libGDX中的UI編輯器t216 

8.1讓CocosStudio成為libGDX的UI 

編輯器t216 

8.2 CocosStudio的UI編輯器的基本

使用t217 

8.2 .1新建項目t217 

8.2.2調整屏幕大小t218 

8.2.3導入資源t219 

8.2.4擺放素材t219 

8.2.5設置元素屬性t220 

8.2.6修改元素的名字t221 

8.2.7保存項目t221 

8.3解析CocosStudio的UI文件t221 

8.3.1找到數據文件t221 

8.3.2簡單分析數據文件t222 

8.3.3編寫代碼解析JSON文件t223 

8.3 .4 CocosStudio解析工具類的基本

用法t228 

8.3.5讓CocosStudio UI編輯器的數據

在libGDX中完美運行t229 

8.4 CocosStudio生成的JSON文件中的

隱患及解決方案t231 

8.4.1隱患分析t231 

8.4.2解決方案t231 

第9章小遊戲實戰—撿金幣t232 

9.1遊戲的感性認識t232 

9.1.1遊戲運行效果圖t232 

9.1.2組成分析t233 

9.2金幣、背景的實現的原理分析t233 

9.3遊戲成就的原理分析及遊戲中的

碰撞檢測t233 

9.3.1檢測的簡單介紹t234 

9.3.2遊戲成就的原理分析t234 

9.4成功界面與失敗界面的原理分析t234 

9.5剩餘時間的原理分析t235 

9.6代碼實現t235 

9.6.1金幣(Jinbi)邏輯體的實現t235 

9.6.2工具類(Utils)的實現t237 

9.6 .3背景(BgImage)邏輯體的實現t237 

9.6.4遊戲主邏輯體MyGamet239 

9.6.5 Android與libGDX交互類

MainActivity的編寫t244 

第10章休閒類游戲—2048t245 

10.1 2048的由來及功能概述t245 

10.1.1 2048的由來t245 

10.1.2功能簡介t245 

10.2遊戲的策劃及準備工作t247 

10.2.1遊戲的策劃t247 

10.2.2 Android平臺下游戲的準備工作t247 

10.3遊戲的架構t248 

10.3.1遊戲中用到的主要技術t248 

10.3.2各類的簡要介紹t248 

10.3.3遊戲的框架簡介t249 

10.3.4遊戲中核心邏輯的幾個要點t250 

10.4遊戲程序入口的設計與實現t251 

10.4.1 MainActivity的實現t251 

10.4.2 MyGame類的實現t252 

10.5遊戲主界面GameScreen的設計與

實現t253 

10 .5.1遊戲主界面的框架設計t253 

10.5.2遊戲主界面GameScreen的

實現t257 

10.6遊戲中所涉及的各個邏輯體t270 

10.6.1資源管理類Assets的設計t270 

10.6 .2資源管理類Assets的實現t271 

10.6.3遊戲中的常量類Contantst272 

10.6.4遊戲中分數邏輯體Score類的

設計與實現t273 

10.6.5每種分值對應的顏色的邏輯體

Square的設計t274 

10.6.6 Square類的實現t275 

10.6.7分數格子邏輯體Cell類的設計t279 

10.6.8分數格子邏輯體Cell類的實現t280 

10.6.9數據存儲與恢復邏輯體Prefs 

的設計t285 

10.6.10數據存儲與恢復邏輯體Prefs 

的實現t285 

10.7遊戲的優化與改進t289

 

<作者介紹>

 

黃俊東,大眾點評客戶端研發工程師。南京郵電大學畢業,曾就任於創新工場等大型公司,CSDN的博客專家。具有豐富的開發經驗,具有3年Android平臺上的開發經驗,熟悉Java Web開發、Android開發和遊戲開發。開發並發布過多個APP和遊戲,如《FashioGirls》等Google Play上較為火熱的遊戲,尤其對libGDX開發有深入的研究。