2012-12-08 25 views
3

我正在爲使用libgdx的Android開發遊戲,並且想知道如何製作android UI元素(如EditText和Button)。我理解它只會工作,爲Android,所以我會做這樣的事情:如何使用libgdx創建Android UI元素

if (Gdx.app.getType() == Application.ApplicationType.Android) { 
... 
} 

我發現scene2d.ui可能會有所幫助,但我不使用scene2d(演員,舞臺等)和不太熟悉它。相反,我使用的屏幕的,是這樣的:

public class GameScreen implements Screen { 
... 
} 

I`ve遊戲原型防禦看到(帶libgdx寫的),這是可能的。

回答

1

只在android項目中使用android UI。

他們有an example如何爲admob廣告做到這一點,這樣你就可以在你的遊戲上投放廣告。

2

所有Android特定的代碼必須存在於Android後端。您不能在公共項目中使用Android特定的代碼。

所有當前的libGDX UI元素都是基於OpenGL的自定義元素(所以它們在libGDX支持的所有平臺上都有所不同)。沒有包含Android UI基元的元素。對於簡單的東西,如按鈕,標籤或列表,我建議使用libGDX UI組件來實現可移植性。對於更復雜的元素,如文本輸入或與平臺交互(例如共享或其他),您可以使用標準的「定義接口」方法來調用特定於平臺的代碼。

具體來說,假設你想彈出一個對話框讓用戶輸入他們的名字。 Define

public interface PlatformUI { 
    public void showHighscoreNameEdit(); 
} 

然後在您的Android項目中使用Android原語在一個類中實現此接口。然後將這個對象的一個​​實例傳遞給你的通用代碼的構造函數。現在,通用代碼可以「呼叫」到Android圖層。

像這樣的事情在Android初始化代碼:

AndroidUI androidUI = new AndroidUI(...); 
initialize(new Game(androidUI)); 

而且像這樣的平臺代碼:

if (timeToShowEditBox) { 
    androidUI.showHighscoreNameEdit(); 
} 

由於@android開發商指出,AdMobInLibgdx wiki page覆蓋此的意圖調用特定於Android的AdMob庫,在這種情況下非常相似。