我正在使用libgdx,因为我想调试我的游戏,我尝试从Android实用程序导入Log到位于“core \ src \ com \ mygdx \ game \”中的主游戏文件。出于某种原因,AndroidStudio不允许我导入该类。有谁能指出我的解决方案? 尝试: 重建项目。
答案 0 :(得分:0)
正如在页面Interfacing with Platform-specific Code下的wiki中指定的那样,您需要做的是为要使用的库提供接口,并使用核心中的接口。你必须做的是提供每个启动器类的实现。
例如,您的桌面启动器看起来像这样,
package com.badlogic.drop;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
public class Main {
public static void main(String[] args) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.title = "Drop";
config.width = 800;
config.height = 480;
new LwjglApplication(new Drop(), config);
}
}
你可以在这里看到new Drop()
- 你可以指定你想在游戏中绑定的其他依赖项,对吗?
public class Drop extends Game {
public static final String TAG = Drop.class.getSimpleName();
private Logger logger;
public Drop(Logger logger) {
this.logger = logger;
logger.debug(TAG, "`Drop` game initialized.");
...
}
}
在桌面上它会变为
new LwjglApplication(new Drop(new DesktopLogger()), config);
Logger是[核心]
public interface Logger {
void debug(String tag, String message);
//...
}
桌面记录器是[桌面]
public class DesktopLogger implements Logger {
public void debug(String tag, String message) {
System.out.println("D/" + tag + ": " + message);
}
}
android logger是[android]
public class AndroidLogger implements Logger {
public void debug(String tag, String message) {
Log.d(tag, message);
}
}
所以Android启动器变为
public class AndroidLauncher extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config= new AndroidApplicationConfiguration();
config.useAccelerometer = false;
config.useCompass = false;
initialize(new Drop(new AndroidLogger()), config);
}
}