2012-12-30 36 views
1

因此,在libgdx android项目中,我们有一个包含android活动的文件夹,另一个包含libgdx项目的源代码。LibGdx如何从libgdx类返回到androidActivity

从我们使用initialize(new MyGdxGame(),cfg);

现在我需要知道如何回到像游戏里面一个libgdx类主菜单中的Android活动一个Android活动开始了“游戏” ......

我尝试从Activity扩展类来获得contextApplication,但我无法填充第二个参数,因为程序不能识别libgdx类中的android类...

回答

1

使用Android特定的标准方法libGDX项目中的代码是在libGDX核心项目中创建一个与平台无关的接口(例如,interface PlatformStuff),那么在每个特定于平台的后端(例如,桌面或Android)中实现与特定于平台的对象的接口(因此是class AndroidPlatformStuff implements PlatformStuff)。在构建它时,您可以将接口的平台特定实现传递到通用代码(例如,new MyGdxGame(new AndroidPlatformStuff())

调用更改活动和上下文的Android代码可能需要更多工作(因为它与libGDX 。基础设施位),但也应该是可行的,您应该能够使用教程整合为广告获得的基本理念支持见http://code.google.com/p/libgdx/wiki/AdMobInLibgdxhttp://code.google.com/p/libgdx/wiki/ApplicationPlatformSpecific

0

你应该建立回拨; 创建接口和实现在android类上,然后将其传递给libgdx,当你需要调用相关的方法时。

0

首先,您应该在核心文件夹中创建一个接口类。这通常放在你的游戏类中。作为例子,让我们假设你的函数名会LoginFacebook()对称为ActionResolver

接口类的接口类

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在android系统。 希望我没有错过任何东西