我是学习LibGDX的初学者。我正在LibGDX开发我的第一个游戏,你可以用选定的图片替换敌人的球(例如某人的头部)然后你躲避敌人。在我的主菜单中我有stage2d按钮,我想有一个按钮,让用户选择他想要在游戏中使用的图片。所以我创建了一个按钮,并为其添加了一个CLickListner。我现在从哪里开始?有没有办法在LibGDX中打开图库并让用户选择他想要使用的图片?
编辑:
因此,假设我的核心项目中有一个界面:
public interface OpenGallery {
public void openGallery();
}
在我的android目录中,我创建了一个特定于平台的类来启动意图
import android.content.Intent;
import com.kubas.zaidimas.OpenGallery;
public class GalleryOpener extends AndroidLauncher implements OpenGallery {
private static final int SELECT_PICTURE = 1;
@Override
public void openGallery() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), SELECT_PICTURE);
}
从这一点开始我该怎么做?所以我可以在我的主菜单中调用它?
答案 0 :(得分:6)
我创建了一个示例libgdx项目,其中包含特定于android的代码,用于调用库并检索用户选择的图像的文件路径。希望这有助于您了解集成的工作原理。我在几个Android设备上测试过它。 见https://github.com/miket-ap/libgdx-platform-specific-example
答案 1 :(得分:1)
要从其他类调用platform-scpefic对象(galleryOpener),您需要使用构造函数或setter传递对它的引用:
public class MyGdxApp extends Game {
MainMenuScreen mainMenuScreen;
@Override
public void create() {
mainMenuScreen = new MainMenuScreen(this);
setScreen(mainMenuScreen);
}
}
然后在菜单屏幕中:
public class MainMenuScreen implements Screen {
MyGdxApp app;
// constructor to keep a reference to the main Game class
public MainMenuScreen(MyGdxApp app){
this.app = app;
}
@Override
public void render(float delta) {
// update and draw stuff
if (Gdx.input.justTouched())
app.galleryOpener.getFilePath()
}
...