本文使用的libgdx是0.92版本,和現在的最新版可能有一些不一樣的地方。全文內容僅供參考。
Libgdx是一款支援2D與3D遊戲開發的遊戲類庫,相容大多數微機平台(標準JavaSE實現,能運行在Mac、Linux、Windows等系統)與Android平台(Android1.5以上即可使用,Android2.1以上可滿功率發揮)。
logo:
地址:http://code.google.com/p/libgdx/
首先下載最新的jar,我下載的是libgdx-0.9.2。
建立一個Android項目,File -> New -> Project -> Android Project。我選的SDK是1.6的,最低選擇應該是1.5.
建立一個檔案夾libs(這個名字是固定的,不能隨意改),將下載到的jar複製進去,android平台只需要複製gdx.jar和gdx-backend-android.jar。
增加引用,然後將armeabi和armeabi-v7a兩個檔案夾複製到libs檔案夾中。
然後寫個小東西測試一下環境有沒有問題。
建立類HelloGameActivity,繼承AndroidApplication類。
package com.cnblogs.htynkn;import com.badlogic.gdx.backends.android.AndroidApplication;import android.os.Bundle;public class HelloGameActivity extends AndroidApplication { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initialize(new FirstGame(), false); } }
initialize(new FirstGame(), false);
就是啟動遊戲的關鍵,FirstGame是一個實現了ApplicationListener的類。
代碼如下
package com.cnblogs.htynkn;import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.g2d.SpriteBatch;public class FirstGame implements ApplicationListener { //繪圖用的SpriteBatch private SpriteBatch batch; @Override public void create() { batch = new SpriteBatch(); //執行個體化 } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void pause() { // TODO Auto-generated method stub } @Override public void render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); //清屏 batch.begin(); batch.end(); } @Override public void resize(int width, int height) { // TODO Auto-generated method stub } @Override public void resume() { // TODO Auto-generated method stub }}
因為沒有寫實際的東西,所以效果是一個黑黑的框。
環境搭建就說到這裡,下一篇是關於圖片繪製的。
注意:
如果仔細觀察Logcat,就會發現一個error:
E/libEGL(382): couldn't load <libhgl.so> library (Cannot load library: load_library[984]: Library 'libhgl.so' not found)
這個沒什麼關係,這是系統嘗試載入硬體OpenGL驅動失敗了,然後回到軟體的處理方法上,不是缺陷或者錯誤。