如何从android后端调用核心方法?

时间:2018-07-19 21:03:23

标签: android libgdx

我可以使用GDX(平台特定代码)中的android方法,但是可以从android后端获取libgdx方法吗? 我有Firebase数据库。在游戏的android方面,我捕获了数据库中的所有更改。而且我需要将这些更改转移到我的核心后端(例如,更新一些参与者,标签等)。最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

好消息,这是可能且简单的,只需导入所需的内容即可,例如LibGDX中的Color类

import com.badlogic.gdx.graphics.Color;

public class AndroidLauncher extends AndroidApplication {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();


    Color color = new Color();
    initialize(new Game(), config);
}

希望这就是您需要的

答案 1 :(得分:1)

可以使用Interfacing访问core module内部的特定于平台的API。


core-module是所有平台的共同组成部分,因此您可以访问项目中的任何位置。

如果您想ApplicationListener / call any method核心模块,请保留对access data member的引用。

内部android模块:

public class AndroidLauncher extends AndroidApplication {

    MyGdxGame gdxGame;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();

        gdxGame=new MyGdxGame();
        initialize(gdxGame, config);
    }

     public void andoridMethod(){
         System.out.println(gdxGame.x);      //access data member
         gdxGame.doSomething();              //access method
     }
}

内部核心模块:

public class MyGdxGame implements ApplicationListener {

      public int x=4;

      public void doSomething(){}

      // Life cycle methods of ApplicationListener
}

答案 2 :(得分:0)

如Aryan所建议的那样,如果仅从Android代码中调用核心函数,则该代码将在其他线程上执行,除非您将代码设计为线程安全的,否则可能会导致问题。

如果要确保它在Gdx渲染线程上执行,则应在Android代码中保留对游戏的引用,然后使用

    Gdx.app.postRunnable(new Runnable(){
        @Override
        public void run(){
            gdxGame.doSomething();
        }
    })

然后,应在渲染循环开始时(在输入处理之前)执行runnable。