2012-12-08 66 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库,在这种情况下非常相似。