因此,在libgdx android项目中,我们有一个文件夹包含android活动,另一个文件夹包含libgdx项目的源代码。
为了从一个Android活动开始“游戏”,我们使用initialize(new MyGdxGame(),cfg);
现在我需要知道如何从游戏中的libgdx类返回到android活动,比如主菜单……
我尝试从Activity扩展类来获取contextApplication,但是我不能填充第二个参数,因为程序不能识别libgdx类中的android类……
发布于 2013-01-04 02:19:30
在libGDX项目中使用特定于安卓的代码的标准方法是在libGDX核心项目(例如,interface PlatformStuff)中创建独立于平台的接口,然后在每个特定于平台的后端(例如,桌面或安卓)中使用特定于平台的对象(例如class AndroidPlatformStuff implements PlatformStuff)来实现该接口。您可以在构造接口时将特定于平台的接口实现传递到泛型代码中(例如,new MyGdxGame(new AndroidPlatformStuff())。
调用改变活动和上下文的安卓代码可能需要更多的工作(因为它与libGDX基础设施有一点交互),但也应该是可行的。您应该能够使用集成广告支持的教程来获得基本概念。请参阅http://code.google.com/p/libgdx/wiki/AdMobInLibgdx或http://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific
发布于 2017-11-01 08:18:12
首先,您应该在核心文件夹中创建一个接口类。这通常放在你的游戏类中。例如,对于名为ActionResolver的接口类,您的函数名将是LoginFacebook()
接口类
package com.mygdx.game;
public interface ActionResolver {
public void LoginFacebook();
}现在,在您的游戏类中,您应该具有以下构造函数:
public SpaceXplorerGame(ActionResolver actionResolver)
{
this.actionResolver = actionResolver;
}现在,在android文件夹中的src -> com.mygdx.game.android (包名)中,您应该创建处理程序类,在我的例子中称为ActionResolverAndroid
public class ActionResolverAndroid implements ActionResolver {
Handler handler;
Context context;
public ActionResolverAndroid(Context context) {
handler = new Handler();
this.context = context;
}
public void LoginFacebook()
{
handler.post(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(context, LoginActivity.class);
context.startActivity(intent);
}
});
} }
现在,从LibGdx调用函数LoginFacebook()将把你带到安卓系统中的LoginAcitivty.class。希望我没有遗漏任何东西
发布于 2017-10-16 21:05:11
你应该创建回调;创建一个接口并在android类上实现,然后将其传递给libgdx,当你需要调用相关方法时。
https://stackoverflow.com/questions/14093241
复制相似问题