如何让用户从图库中选择一张图片用于游戏,LibGDX

时间:2014-07-03 17:13:03

标签: android libgdx

我是学习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);     
    }

从这一点开始我该怎么做?所以我可以在我的主菜单中调用它?

2 个答案:

答案 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()
    }
    ...