2013-11-10 3 views
2

Когда я пытаюсь загрузить мой текстурный атлас через AssetManager, он бросает следующее исключение:LibGdx Assetmanager загрузки неверной строки

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Error reading pack file: data/atlas/mainmenu 
at com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:517) 
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:351) 
at com.badlogic.gdx.assets.AssetManager.finishLoading(AssetManager.java:372) 
at nl.gameplayinc.tubularballs.util.Assets.load(Assets.java:31) 
at nl.gameplayinc.tubularballs.util.Assets.create(Assets.java:24) 
at nl.gameplayinc.tubularballs.screen.SplashScreen.show(SplashScreen.java:28) 
at com.badlogic.gdx.Game.setScreen(Game.java:62) 
at nl.gameplayinc.tubularballs.TubularBalls.setScreen(TubularBalls.java:70) 
at nl.gameplayinc.tubularballs.TubularBalls.create(TubularBalls.java:27) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136) 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114) 
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading pack file: data/atlas/mainmenu 
at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.<init>(TextureAtlas.java:177) 
at com.badlogic.gdx.assets.loaders.TextureAtlasLoader.getDependencies(TextureAtlasLoader.java:58) 
at com.badlogic.gdx.assets.loaders.TextureAtlasLoader.getDependencies(TextureAtlasLoader.java:34) 
at com.badlogic.gdx.assets.AssetLoadingTask.handleSyncLoader(AssetLoadingTask.java:98) 
at com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:87) 
at com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:454) 
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:349) 
... 9 more 
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Invalid line: mainmenu.png 
at com.badlogic.gdx.graphics.g2d.TextureAtlas.readValue(TextureAtlas.java:425) 
at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.<init>(TextureAtlas.java:110) 
... 15 more 

Когда я загружаю мой атлас обычно (с помощью: new TextureAtlas("data/atlas/mainmenu/mainmenu.atlas");) он работает просто отлично , Мне нужно assetmanager, чтобы загрузить свои файлы через resolutionfileresolver поэтому я сделал следующие настройки:

public void create() 
{ 
    Resolution _568x1136 = new Resolution(568, 1136, ".568x1136"); 

    ResolutionFileResolver resolver = new ResolutionFileResolver(new InternalFileHandleResolver(), _568x1136); 

    manager = new AssetManager(); 
    manager.setLoader(TextureAtlas.class, new TextureAtlasLoader(resolver)); 
    load(); 
} 

private void load() 
{ 
    manager.load("data/atlas/mainmenu", TextureAtlas.class); 
    manager.finishLoading(); 
} 

Исключение происходит на manager.load("data/atlas/mainmenu", TextureAtlas.class);

Мой .atlas файл находится в активах \ Data \ атласе \ MainMenu \ MainMenu .atlas Png, на который указывает первая строка, - mainmenu.png, который находится в том же каталоге, и поскольку он может найти строку с «mainmenu.png», я предполагаю, что он также нашел правильный файл атласа.

Я также попытался добавить расширения разрешения (mainmenu.atlas.568x1136 и mainmenu.png.568x1136), но с тем же результатом.

Я искал много мест для помощи, но не мог найти свою проблему нигде.

Если кто-то может мне помочь, я бы очень признателен!

Кроме того, я не могу найти много информации о ResolutionFileResolver. Какие файлы должны иметь расширение разрешения (я дал его как моему атласу, так и img-файлу), и есть ли более простой способ генерации ресурсов разрешения, чем ручное добавление расширения?

EDIT Добавлены mainmenu.atlas

mainmenu.png 
format: RGBA8888 
filter: Nearest,Nearest 
repeat: none 
background 
rotate: false 
xy: 2, 617 
size: 640, 1136 
orig: 640, 1136 
offset: 0, 0 
index: -1 
btnbuy 
rotate: false 
xy: 2, 537 
size: 414, 78 
orig: 414, 78 
offset: 0, 0 
index: -1 
btncredits 
rotate: false 
xy: 2, 457 
size: 414, 78 
orig: 414, 78 
offset: 0, 0 
index: -1 
btnhighscores 
rotate: false 
xy: 2, 58 
size: 414, 77 
orig: 414, 77 
offset: 0, 0 
index: -1 
btninfo 
rotate: false 
xy: 2, 377 
size: 414, 78 
orig: 414, 78 
offset: 0, 0 
index: -1 
btnmute 
rotate: false 
xy: 418, 537 
size: 94, 78 
orig: 94, 78 
offset: 0, 0 
index: -1 
btnnewgame 
rotate: false 
xy: 2, 297 
size: 414, 78 
orig: 414, 78 
offset: 0, 0 
index: -1 
btnrate 
rotate: false 
xy: 755, 1329 
size: 58, 424 
orig: 58, 424 
offset: 0, 0 
index: -1 
btnresumegame 
rotate: false 
xy: 2, 217 
size: 414, 78 
orig: 414, 78 
offset: 0, 0 
index: -1 
btntutorial 
rotate: false 
xy: 2, 137 
size: 414, 78 
orig: 414, 78 
offset: 0, 0 
index: -1 
btnunmute 
rotate: false 
xy: 815, 1675 
size: 94, 78 
orig: 94, 78 
offset: 0, 0 
index: -1 
display 
rotate: false 
xy: 2, 2 
size: 343, 54 
orig: 343, 54 
offset: 0, 0 
index: -1 
longtube 
rotate: false 
xy: 644, 617 
size: 109, 1136 
orig: 109, 1136 
offset: 0, 0 
index: -1 

ответ

3

"Когда я загружаю мой атлас нормально (с помощью: новые текстурный атлас (" данные/атлас/MainMenu/mainmenu.atlas «);) это работает просто хорошо."

Исключение происходит на manager.load ("data/atlas/mainmenu", TextureAtlas.class); "

"Мой .atlas файл находится в папке активов \ Data \ атласе \ MainMenu \ mainmenu.atlas"

Добавить .atlas в путь, когда ваш packfile называется mainmenu.atlas и не только mainmenu.

+0

Это сделало трюк, странный, хотя, поскольку в примерах я обнаружил, что никто не добавил расширение .atlas .... – Myth1c

+0

Я думаю, это связано с тем, что в более ранних версиях инструмента TexturePacker не было добавлено суффикса файлов атлас. Но теперь они называются xxx.atlas или xxx.pack автоматически – noone

+0

Можете ли вы рассказать мне, какие файлы должны иметь какое расширение для разрешения разрешения? Как видно из моего кода, в настоящее время я передаю разрешение с помощью «.568x1136». – Myth1c

Смежные вопросы