1. 程式人生 > >Libgdx Developer's Guide(Libgdx開發者手冊)-1

Libgdx Developer's Guide(Libgdx開發者手冊)-1

簡介

Libgdx 是一個跨平臺的遊戲物件開發框架。目前支援的開發平臺有:Windows, Linux, Mac OS X, Android, iOS 和 HTML5。

Libgdx 允許一次編碼無需修改即可釋出到多個平臺。與其等待最新的修改被佈置至裝置或者編譯為HTML5語言,你可以在桌面環境開發你的應用,主要受益於一個極快的迭代週期。你可以使用Java系列的所有工具用以開發。

Libgdx 使你可以儘可能地深入底層,它允許直接訪問檔案系統,輸入裝置,音訊裝置,通過統一的OpenGL ES 1.x 和 2.0介面來訪問OpenGL。

在這些底層裝置之上,我們建立了一組強大的API幫助你完成普通的遊戲開發任務,例如:畫面和文字的渲染,構建使用者介面,播放聲音效果和音樂流,線性代數與三角函式計算,解析JSON和XML等等。

必要時,Libgdx 拋開Java轉而使用原生代碼以獲取儘可能好的效能。所以的這些功能都隱含在Java API中,因此你不用擔心全平臺的原生代碼交叉編譯。Libgdx的許多程式碼都在解決已知的平臺問題,所以你不必自己處理。

Libgdx的目標是成為一個框架而不僅僅是引擎,儘管我們也承認根本沒有一勞永逸的解決方案。然而,我們提供給你強大的抽象類讓你自己選擇怎樣編寫你的遊戲或應用。

站在巨人的肩膀上

Libgdx使用了大量的第三方庫來提供其功能:




目標與特點

Libgdx 是一個Java框架,提供跨平臺API用以遊戲或者實時應用開發。它有以下特點:

概述

  • 跨平臺開發: Windows, Linux, OSX, iOS, Android 和HTML5((32- 和 64-bit 可用).
  • 多後臺,基於 Jogl, LWJGL, Angle (NVIDIA 3D Vision), Android APIs, iOS APIs 和 WebGL/HTML5 APIs.
  • 在桌面上編寫和測試程式碼, 無縫部署至 Android, iOS, 純 Javascript, Applets, Webstart 或簡單的桌面應用.
圖形

       

  • 在所有平臺使用 OpenGL ES 1.0, 1.1 和 2.0 渲染.
  • 通過自定義JNI繫結在Android2.0及以上版本支援 OpenGL ES 2.0.
  • 底層:
    • 頂點陣列
    • 頂點緩衝物件
    • 紋理
    • 紋理地圖
    • 同時為固定和可編碼的管道提供易用靈活的網格類
    • 幀緩衝物件
    • 描影
    • 即時模式渲染類(用以除錯glBegin()/glEnd())
    • 自動處理OpenGL上下文缺失 (紋理和 VBO遊戲)
  • 高階 2D:
    • 批處理和快取畫面渲染
    • 點陣圖字型
    • 粒子系統
    • TMX 瓷磚地圖渲染
    • 基於點陣圖操作為CPU自定義C 2D圖形庫
    • 全面的2D場景圖與補間框架
  • 高階 3D (正在編寫):
    • OBJ和MD5模型裝載器
    • 關鍵幀骨骼動畫
    • 正投影與透視相機
    • .. 待新增 ..

音訊

  • 流媒體音樂和音效播放,格式:WAV, MP3 and OGG
  • 通過JNI橋接至 KissFFT 的快速傅立葉變換。
  • 通過JNI橋接至Tremor and libmpg123 的OGG和MP3音訊解碼。 (libmpg123 因為許可證的問題目前已不使用)
  • 直接的介面用以音訊裝置播放與錄製。

檔案 I/O

  • 統一的抽象層,包括 Android資源,類路徑資源和普通檔案系統.
  • 易儲存的小資料可儲存至優先選項(Preferences)

輸入

  • 輪詢和基於事件的觸屏和鼠鍵訪問機制.
  • 輪詢訪問指南針和加速度計
  • 振動器支援 (yeah...)
  • 遠端輸入事件處理允許你將Android手機連線至桌面應用
物理系統
  • 完整的 box2d JNI封裝.
  • 此封裝非常優秀,其他所有的Android遊戲框架和引擎都在使用。

數學

  • 2D,3D線性代數向量和矩陣類
  • 4元數
  • Frustum with culling support
  • 邊界形狀
  • 交集重疊測試
  • Catmull-Rom 曲線
  • 任意平面多邊形Ear裁剪

實用

  • 自定義集合
  • 排序
  • JSON

工具與擴充套件

優化

  • 對Dalvik虛擬機器的需求量身定做的最佳實踐準則
  • 執行時無臨時物件分配 (除了一些文件部分)
  • 關鍵部分的原生代碼實現
  • 開放-關閉 Dalvik/Harmony bug的工作

Libgdx是什麼

一個高效能,跨平臺的引擎和遊戲開發基礎框架。作為一個框架,我們把重點放在建造堅實的基礎,而不是實現最新最大的遊戲引擎架構。Libdgx提供所有的靈活性來幫助你而不是讓你使用嚴格的方法。

Libgdx不是什麼

一個除了廚房水槽之外幾乎包括了所有東西的遊戲引擎.


(本想逐章翻譯,無奈實在沒多少時間,這裡做一個簡介,下節開始動手實踐)