libgdx 環境搭建

來源:互聯網
上載者:User

一、 開發包下載

1) libgdx 開發包下載: google code(最新 libgdx-0.9.7.zip    2012.11.12)

2) libgdx 主幹源碼下載: github tags

環境搭建

 1) 添加開發jar包

libgdx的android開發包主要有 gdx.jar, gdx-backend-android.jar,以及 armeabi 和 armeabi-v7a (區別)

解壓libgdx -x.x.x.zip 檔案, 可以看到以下分類樹:

開發libgdx時,把畫藍色橫線的開發包拷貝到自己的Android項目libs目錄下,如下:

2) 添加源碼jar包

開發過程中,可能需要連結查看libgdx源碼,因此需要添加 gdx-backend-android-sources.jar 和 gdx-sources.jar 源碼包

添加步驟: 點擊libgdx開發jar包中的引用函數——》查看源碼——》Attach Source... ——》 選擇 gdx-backend-android-sources.jar 和 gdx-sources.jar 源碼包

3) 在自己的項目myLibgdx,添加完開發包jar和源碼包jar後,其效果如下:

簡單樣本

1) 建立Activity

在自己項目myLibgdx中, 建立一個MainActivity,繼承於libgdx父類 AndroidApplication

public class MainActivity extends AndroidApplication {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);initialize(new MyGame(), false);}}

2) 自訂 MyGame 

上面 MainActivity 的 initialize() 中,使用了自訂的 MyGame 類,其實現 libgdx 父類介面 ApplicationListener , 詳細定義如下:

public class MyGame implements ApplicationListener {private SpriteBatch batch;// 初始化遊戲精靈private BitmapFont bf;// 初始化字型繪製@Overridepublic void create() {// 建立batch = new SpriteBatch();bf = new BitmapFont();bf.setColor(Color.RED);bf.setScale(1.0f);}@Overridepublic void render() {// 渲染Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);Gdx.gl.glClearColor(0, 0, 0, 0);batch.begin();bf.draw(batch, "hello libgdx", Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);batch.end();}@Overridepublic void resize(int arg0, int arg1) {// 布局調整}@Overridepublic void pause() {// 暫停}@Overridepublic void resume() {// 恢複}@Overridepublic void dispose() {// 銷毀bf.dispose();batch.dispose();}}

運行結果:

源碼下載 

libgdx生命週期

通過上面的簡單樣本,libgdx 運行流程已全部展示出來了,具體流程如下:

1) 主MainActivity,繼承於libgdx父類 AndroidApplication, 而 AndroidApplication 又繼承Android 基本的Activity並實現了libgdx自訂的介面類 Application, 關係如下:

public class AndroidApplication extends Activity implements Application 

2) 自訂 MyGame,實現 libgdx 父類介面 ApplicationListener, 而ApplicationListener 介面如下:

public class MyGame implements ApplicationListener {   public void create () {   }   public void resize (int width, int height) {    }   public void render () {           }   public void pause () {    }   public void resume () {   }   public void dispose () {    }}

邏輯流程如下:

邏輯流程的功能描述:

方法名

功能描述

create()

應用建立時,被調用且只調用一次

resize(int width, int height)

遊戲螢幕每次重設大小且不在暫停狀態時調用此方法,在create()後僅調用一次,參數是螢幕被重設後的新寬度和高度(像素)

render()

每次渲染髮生時,遊戲迴圈調用此方法。遊戲邏輯更新常在此方法中,即迴圈重新整理繪製遊戲的邏輯畫面

pause()

在android中當Home鍵按下或重新進入程式時調用,這是一個儲存遊戲狀態的好時刻,resume()不一定會被調用

resume()

這個方法僅在android中調用,當應用從pause狀態重新擷取焦點時resume

dispose()

當應用銷毀destroyed時,調用此方法,在pause()之後

 

libgdx 應用開發的邏輯流程圖:

五、 總結

從上文的樣本和流程圖可以看出,libgdx 遊戲開發步驟如下:

1) AndriodApplication,繼承自Android 的基類 Activity, 起到了一個Activity的作用,但是我們並不在這個“Activity”中做太多的工作,當然可以做一些儲存Context上下文之類的工作,如 onSaveInstanceState(), onRestoreInstanceState()等

2) libgdx開發中實際的顯示工作,是交給一個實現了ApplicationListener介面的類來完成,它有所需要的所有功能:建立,渲染(重新整理),暫停,恢複,銷毀等。所以實際的情況是,我們在遊戲中的大部分繪圖工作都是放在這個頁面進行的

參考推薦:

libgdx 概述

The Life-Cycle(libgdx wiki)

libgdx遊戲引擎教程 ApplicationListener

android遊戲開發架構libgdx 開發架構總觀

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.