2013-06-18 42 views
0

以前我使用簡單的Texture來進行基於精靈的動畫,但是它沒有提供對圖像不支持的功能。TexturePacker提供了一次加載所有圖像的能力,並且然後從imageatlas獲取所需的圖像。無法從imageatlas加載圖像

這就是說,我遵循了Libgdx wiki上的幾個教程,它很好地工作,直到加載部分。但是我想在渲染過程中,它會導致一些問題。這是怎麼了加載圖像到texturepacker在我的桌面項目:

private static final String INPUT_DIR = "../Drop-Android/assets/images"; 
    private static final String OUTPUT_DIR = "../Drop-Android/assets/image-atlases"; 
    private static final String PACK_FILE = "pages-info"; 
    public static void main(String[] args){ 
     LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration(); 
     cfg.title = "Drop"; 
     cfg.width = 800; 
     cfg.height = 480; 

     Settings settings = new Settings(); 
     settings.maxWidth = 512; 
     settings.maxHeight = 512; 
     TexturePacker2.process(settings, INPUT_DIR, OUTPUT_DIR, PACK_FILE); 
     new LwjglApplication(new Drop(), cfg); 
    } 

問題:我一定要創建pages-infoPACK_FILE手動圖像,地圖冊文件夾?如果我不這樣做,它會拋出File not found exception

我碰巧在image-atlases文件夾中創建了pages-info文件,並生成了以下文件:pages-info.png和'pages-info.atlas'。雖然,pages-info文件爲空,但.png.atlas文件分別具有圖像和JSON圖像數據。

這是我使用提取textureregionspages-info文件(裏面是空的)什麼:

TextureAtlas ta = new TextureAtlas(Gdx.files.internal("image-atlases/pages-info")); 
     imageOneRegion = ta.findRegion("image1.png"); 
     imageTwoRegion = ta.findRegion("image2.png"); 

正如預期的那樣,它繪製textureregion當返回nullpointerexception。我在這裏沒有想法,有什麼幫助和想法?

回答

2

如果使用Texturepacker生成靜態圖片集,它也會生成必要的信息頁面。 (libgdx wiki),它是卡列斯像packName.atlas(從命令行嘗試)

java -cp gdx.jar;extensions/gdx-tools/gdx-tools.jar com.badlogic.gdx.tools.imagepacker.TexturePacker2 inputDir [outputDir] [packFileName] 

如果涉及到加載你應該只加載地圖冊文件中的圖像,它不應該是一個JSON文件,而是一個自定義文件格式。

TextureAtlas ta = new TextureAtlas(Gdx.files.internal("image-atlases/<yourAtlasName>.atlas")); 

然後,您可以通過它們的文件名參考pngs而不使用後綴。

+0

是的,似乎我做錯的唯一的事情是讓圖像名稱和圖集文件名錯誤。但它需要'page-info'才能開始生成文件。 – faizanjehangir