Java libgdx如何创建自己的textureregionLoader

Java libgdx如何创建自己的textureregionLoader,java,android,libgdx,Java,Android,Libgdx,我认为这不够整洁,也没有使用assetmanager,所以我决定创建我的TextureRegionLoader Texture ts=am.get("gametiles.o", MyTexture.class); tiles_1 = new TextureRegion(ts, 0, 2, 116, 32); tiles_2 = new TextureRegion(ts, 0, 36, 116, 32); tiles_3 = new TextureReg

我认为这不够整洁,也没有使用assetmanager,所以我决定创建我的TextureRegionLoader

        Texture ts=am.get("gametiles.o", MyTexture.class);

    tiles_1 = new TextureRegion(ts, 0, 2, 116, 32);

    tiles_2 = new TextureRegion(ts, 0, 36, 116, 32);
    tiles_3 = new TextureRegion(ts, 0, 72, 116, 32);
    tiles_4 = new TextureRegion(ts, 0, 109, 116, 32);
    tiles_5 = new TextureRegion(ts, 1026, 258, 116, 32);
这是一次成功

当我使用tiles时,它不会出现在屏幕上,并且应用程序没有快速退出,日志正常,如何解决这个问题


你为什么不使用纹理打包应用程序?这比为这个问题创建自己的解决方案要容易得多。@MilanG但我认为它在将来可能会有用
public class MyTextureRegionLoader extends  AsynchronousAssetLoader<TextureRegion,MyTextureRegionLoader.MyTextureRegionParameter>
@Override
public Array<AssetDescriptor> getDependencies(String fileName, FileHandle p2, MyTextureRegionLoader.MyTextureRegionParameter parameter)
{

    if (parameter != null)
    {
        return null;
    }
    Array<AssetDescriptor>array=new Array<AssetDescriptor>();
    array.add(new AssetDescriptor< MyTexture>(fileName, MyTexture.class));
    return array;

}

@Override
public void loadAsync(AssetManager p1, String p2, FileHandle p3, MyTextureRegionLoader.MyTextureRegionParameter parameter)
{/*if(parameter==null){
     throw new GdxRuntimeException("plase add data");
     }*/
}

@Override
public TextureRegion loadSync(AssetManager manger, String filename, FileHandle p3, MyTextureRegionLoader.MyTextureRegionParameter parameter)
{  
    if (parameter == null)
    {
        MyTexture mT=manger.get(filename, MyTexture.class);
        TextureRegion tr=new TextureRegion(mT);
        return tr;}
    else
    {if(manger.isLoaded(parameter.TextureFileName,MyTexture.class)){
        Gdx.app.error("","加载完毕");
        MyTexture mt=manger.get(parameter.TextureFileName, MyTexture.class);

        Gdx.app.error("","texture地址"+mt.toString());
        TextureRegion tr=new TextureRegion(mt, parameter.x, parameter.y, parameter.width, parameter.height);
        return tr;}
        else{
            return null;
        }
    }
}
public MyTextureRegionLoader(FileHandleResolver fh)
{
    super(fh);
}
public static class MyTextureRegionParameter extends AssetLoaderParameters<TextureRegion>
{
    public String TextureFileName;
    public float x;
    public float y;
    public float width;
    public float height;}
    am.load("x.o", TextureRegion.class);
am.load("texture.o", MyTexture.class);
    MyTextureRegionLoader.MyTextureRegionParameter n=new MyTextureRegionLoader.MyTextureRegionParameter();
    n.TextureFileName = "texture.o";
    n.x = 0;
    n.y = 2;
    n.width = 116;
    n.height = 32;
    am.load("kk", TextureRegion.class, n);`
    tiles_1=am.get("kk",TextureRegion.class);`