通过单击原生Android按钮运行libgdx项目?

时间:2017-01-07 20:12:22

标签: android libgdx native integrate

我的小组和我正在尝试为我们的黑客马拉松构建一个Android应用。现在,当我使用通过DesktopLauncher启动的libGDX构建应用程序时,他们正在构建原生Android应用程序。 (App是基于Java的)

我知道我可以通过更改gradle脚本来更改libGDX游戏的发布位置(因此我可以稍后从Android而不是桌面启动应用程序)。

有没有办法将我的libGDX游戏集成到我的队友正在构建的原生Android应用程序中?示例:我希望我的游戏弹出并开始运行时,我的队友中的一个按钮(应用程序的一部分完全内置在原生Android中)被点击。

很抱歉,如果这个愚蠢的问题,我对Android开发和libGDX库相对较新(遵循Android教程并使用libGDX制作一个项目)。

2 个答案:

答案 0 :(得分:0)

我遇到了问题,因为libgdx示例未更新以使用最新的Android SDK AppCompatActivity。

您可以查看此示例: https://github.com/SiliconLabs/thunderboard-android

特别

DemoMotionGdxAdapter加载模型并渲染场景(这是游戏所在的位置) https://github.com/SiliconLabs/thunderboard-android/blob/master/app/src/main/java/com/silabs/thunderboard/demos/ui/DemoMotionGdxAdapter.java

更新GdxDemoActivity以使用AppCompatActivity作为其基类。 https://github.com/SiliconLabs/thunderboard-android/blob/master/app/src/main/java/com/silabs/thunderboard/demos/ui/GdxDemoActivity.java

DemoMotionActivity包含如何与游戏互动的示例(按钮点击触发游戏中的事件) https://github.com/SiliconLabs/thunderboard-android/blob/master/app/src/main/java/com/silabs/thunderboard/demos/ui/DemoMotionActivity.java#L234

HTH

不要忘记在项目中加入https://github.com/SiliconLabs/thunderboard-android/tree/master/app/libs的罐子。

答案 1 :(得分:0)

LibGDX项目中的DesktopLauncher是一个Android Activity,因此它可以像任何其他Activity一样启动。

如果您的团队的应用可以与您的应用分开,这非常简单。在同一部手机上安装他们的应用程序和他们的应用程序,他们的应用程序只需为您的应用程序启动Intent。例如,在他们按钮的监听器中:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.yourgame");
if (intent != null) { 
    startActivity(intent);
} else {
    showGameNotInstalledMessage();
}

如果您的游戏需要与他们的游戏属于同一个应用程序,那么您需要共享一个项目。 LibGDX项目的结构与默认的Android项目略有不同。如果使用LibGDX Setup应用程序创建项目,它将是最简单的,并且它们在LibGDX项目的Desktop模块中构建本机部分。他们可以更改清单,将<action android:name="android.intent.action.MAIN" />移动到他们自己的主要活动而不是DesktopLauncher。