java - Libgdx - Getting an error when using TexturePacker -
i new libgdx , have been following book 'learning libgdx game development, 2nd edition' learning, , let using android studio, problem though can create pack files in android asset folder somehow gdxruntimeexception error says asset not loaded. error log shown below:
images cloud02 (alias of cloud01) cloud03 (alias of cloud01) packing......... writing 1024x1024: c:\users\raghab\androidstudioprojects\canyonbunnytest\android\assets\images\canyonbunny.pack.png com.packtpub.libgdx.canyonbunny.game.assets: no of assets loader: 2 com.packtpub.libgdx.canyonbunny.game.assets: asset: c:/users/raghab/androidstudioprojects/canyonbunnytest/android/assets/images/canyonbunny.pack.png com.packtpub.libgdx.canyonbunny.game.assets: asset: c:/users/raghab/androidstudioprojects/canyonbunnytest/android/assets/images/canyonbunny.pack.atlas exception in thread "lwjgl application" com.badlogic.gdx.utils.gdxruntimeexception: asset not loaded: c:\users\raghab\androidstudioprojects\canyonbunnytest\android\assets\images\canyonbunny.pack.atlas @ com.badlogic.gdx.assets.assetmanager.get(assetmanager.java:110) @ com.packtpub.libgdx.canyonbunny.game.assets.init(assets.java:53) @ com.packtpub.libgdx.canyonbunny.canyonbunnymain.create(canyonbunnymain.java:30) @ com.badlogic.gdx.backends.lwjgl.lwjglapplication.mainloop(lwjglapplication.java:143) @ com.badlogic.gdx.backends.lwjgl.lwjglapplication$1.run(lwjglapplication.java:120) process finished exit code 0 it seems though pack , image file created on asset folder exception on next line saying can't find it, paths absolute , doesn't seem problem, have pasted classes used.
desktop class:
package com.packtpub.libgdx.canyonbunny.desktop; import com.badlogic.gdx.backends.lwjgl.lwjglapplication; import com.badlogic.gdx.backends.lwjgl.lwjglapplicationconfiguration; import com.badlogic.gdx.tools.texturepacker.texturepacker; import com.packtpub.libgdx.canyonbunny.canyonbunnymain; public class desktoplauncher { private static boolean rebuildatlas = true; private static boolean drawdebugoutline = true; public static void main (string[] arg) { if (rebuildatlas) { texturepacker.settings settings = new texturepacker.settings(); settings.maxwidth = 1024; settings.maxheight = 1024; settings.duplicatepadding = false; settings.debug = drawdebugoutline; texturepacker.process(settings, "c:\\users\\raghab\\androidstudioprojects\\canyonbunnytest\\desktop\\assets-raw\\images", "c:\\users\\raghab\\androidstudioprojects\\canyonbunnytest\\android\\assets\\images", "canyonbunny.pack"); } lwjglapplicationconfiguration config = new lwjglapplicationconfiguration(); config.title = "canyonbunny"; config.usegl30 = false; config.width = 800; config.height = 480; new lwjglapplication(new canyonbunnymain(), config); } } assets class:
package com.packtpub.libgdx.canyonbunny.game; import com.badlogic.gdx.gdx; import com.badlogic.gdx.assets.assetdescriptor; import com.badlogic.gdx.assets.asseterrorlistener; import com.badlogic.gdx.assets.assetmanager; import com.badlogic.gdx.graphics.texture; import com.badlogic.gdx.graphics.g2d.textureatlas; import com.badlogic.gdx.utils.disposable; import com.packtpub.libgdx.canyonbunny.util.constants; public class assets implements disposable, asseterrorlistener { public static final string tag = assets.class.getname(); public static final assets instance = new assets(); private assetmanager assetmanager; private assets() { } public assetbunny bunny; public assetrock rock; public assetgoldcoin goldcoin; public assetfeather feather; public assetleveldecoration leveldecoration; public void init(assetmanager assetmanager) { this.assetmanager = assetmanager; assetmanager.seterrorlistener(this); assetmanager.load(constants.texture_atlas_objects, textureatlas.class); assetmanager.finishloading(); gdx.app.debug(tag, "no of assets loader: " + assetmanager.getassetnames().size); (string : assetmanager.getassetnames()) { gdx.app.debug((tag), "asset: " + a);; } textureatlas atlas = assetmanager.get(constants.texture_atlas_objects); (texture t : atlas.gettextures()) { t.setfilter(texture.texturefilter.linear, texture.texturefilter.linear); } bunny = new assetbunny(atlas); rock = new assetrock(atlas); goldcoin = new assetgoldcoin(atlas); feather = new assetfeather(atlas); leveldecoration = new assetleveldecoration(atlas); } @override public void dispose() { assetmanager.dispose(); } @override public void error(assetdescriptor asset, throwable throwable) { gdx.app.error((tag), "couldn't load asset '" + asset.filename + "'", (exception) throwable);; } public class assetbunny { public final textureatlas.atlasregion head; public assetbunny(textureatlas atlas) { head = atlas.findregion("bunny_head"); } } public class assetrock { public final textureatlas.atlasregion edge; public final textureatlas.atlasregion middle; public assetrock(textureatlas atlas) { edge = atlas.findregion("rock_edge"); middle = atlas.findregion("rock_middle"); } } public class assetgoldcoin { public final textureatlas.atlasregion goldcoin; public assetgoldcoin(textureatlas atlas) { goldcoin = atlas.findregion("item_gold_coin"); } } public class assetfeather { public final textureatlas.atlasregion feather; public assetfeather(textureatlas atlas) { feather = atlas.findregion("item_feather"); } } public class assetleveldecoration { public final textureatlas.atlasregion cloud01; public final textureatlas.atlasregion cloud02; public final textureatlas.atlasregion cloud03; public final textureatlas.atlasregion mountainleft; public final textureatlas.atlasregion mountainright; public final textureatlas.atlasregion wateroverlay; public assetleveldecoration(textureatlas atlas) { cloud01 = atlas.findregion("cloud01"); cloud02 = atlas.findregion("cloud02"); cloud03 = atlas.findregion("cloud03"); mountainleft = atlas.findregion("mountain_left"); mountainright = atlas.findregion("mountain_right"); wateroverlay = atlas.findregion("water_overlay"); } } } constant class:
package com.packtpub.libgdx.canyonbunny.util; public class constants { public static final float viewport_width = 5.0f; public static final float viewport_height = 5.0f; public static final string texture_atlas_objects = "c:\\users\\raghab\\androidstudioprojects\\canyonbunnytest\\android\\assets\\images\\canyonbunny.pack.atlas"; }
sorry all..it's android studio that's not treating path correctly. use forward slash instead of slash when defining paths..took me day figure out.
Comments
Post a Comment