@Override public void create () { float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); camera = new OrthographicCamera(); camera.setToOrtho(false, (w / h) * 10, 10); camera.update(); cameraController = new OrthoCamController(camera); Gdx.input.setInputProcessor(cameraController); font = new BitmapFont(); batch = new SpriteBatch(); map = new TmxMapLoader().load("data/maps/tiled/super-koalio/level1.tmx"); renderer = new OrthogonalTiledMapRenderer(map, 1f / 32f); }
String source = tileset.getAttribute("source", null); if (source != null) { FileHandle tsxFile = getRelativeFileHandle(tmxFile, source); tileset = xml.parse(tsxFile); Element imageElement = tileset.getChildByName("image"); if (imageElement != null) { String imageSource = tileset.getChildByName("image").getAttribute("source"); FileHandle image = getRelativeFileHandle(tsxFile, imageSource); images.add(image); } else { for (Element tile : tileset.getChildrenByName("tile")) { String imageSource = tile.getChildByName("image").getAttribute("source"); FileHandle image = getRelativeFileHandle(tsxFile, imageSource); images.add(image); if (imageElement != null) { String imageSource = tileset.getChildByName("image").getAttribute("source"); FileHandle image = getRelativeFileHandle(tmxFile, imageSource); images.add(image); } else { for (Element tile : tileset.getChildrenByName("tile")) { String imageSource = tile.getChildByName("image").getAttribute("source"); FileHandle image = getRelativeFileHandle(tmxFile, imageSource); images.add(image);
/** Loads the {@link TiledMap} from the given file. The file is resolved via the {@link FileHandleResolver} set in the * constructor of this class. By default it will resolve to an internal file. * @param fileName the filename * @param parameters specifies whether to use y-up, generate mip maps etc. * @return the TiledMap */ public TiledMap load (String fileName, TmxMapLoader.Parameters parameters) { try { this.convertObjectToTileSpace = parameters.convertObjectToTileSpace; this.flipY = parameters.flipY; FileHandle tmxFile = resolve(fileName); root = xml.parse(tmxFile); ObjectMap<String, Texture> textures = new ObjectMap<String, Texture>(); Array<FileHandle> textureFiles = loadTilesets(root, tmxFile); textureFiles.addAll(loadImages(root, tmxFile)); for (FileHandle textureFile : textureFiles) { Texture texture = new Texture(textureFile, parameters.generateMipMaps); texture.setFilter(parameters.textureMinFilter, parameters.textureMagFilter); textures.put(textureFile.path(), texture); } DirectImageResolver imageResolver = new DirectImageResolver(textures); TiledMap map = loadTilemap(root, tmxFile, imageResolver); map.setOwnedResources(textures.values().toArray()); return map; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }
/** Retrieves TiledMap resource dependencies * * @param fileName * @param parameter not used for now * @return dependencies for the given .tmx file */ @Override public Array<AssetDescriptor> getDependencies (String fileName, FileHandle tmxFile, Parameters parameter) { Array<AssetDescriptor> dependencies = new Array<AssetDescriptor>(); try { root = xml.parse(tmxFile); boolean generateMipMaps = (parameter != null && parameter.generateMipMaps); TextureLoader.TextureParameter texParams = new TextureParameter(); texParams.genMipMaps = generateMipMaps; if (parameter != null) { texParams.minFilter = parameter.textureMinFilter; texParams.magFilter = parameter.textureMagFilter; } for (FileHandle image : loadTilesets(root, tmxFile)) { dependencies.add(new AssetDescriptor(image, Texture.class, texParams)); } for (FileHandle image : loadImages(root, tmxFile)) { dependencies.add(new AssetDescriptor(image, Texture.class, texParams)); } return dependencies; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }
/** Loads the {@link TiledMap} from the given file. The file is resolved via the {@link FileHandleResolver} set in the * constructor of this class. By default it will resolve to an internal file. The map will be loaded for a y-up coordinate * system. * @param fileName the filename * @return the TiledMap */ public TiledMap load (String fileName) { return load(fileName, new TmxMapLoader.Parameters()); }
assetManager.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver())); assetManager.load("data/maps/tiled/isometric_grass_and_water.tmx", TiledMap.class); assetManager.finishLoading();
loadProperties(map.getProperties(), properties); loadTileSet(map, element, tmxFile, imageResolver); root.removeChild(element); loadLayer(map, map.getLayers(), element, tmxFile, imageResolver);
FileHandle tsx = getRelativeFileHandle(tmxFile, source); try { element = xml.parse(tsx); imageWidth = imageElement.getIntAttribute("width", 0); imageHeight = imageElement.getIntAttribute("height", 0); image = getRelativeFileHandle(tsx, imageSource); imageWidth = imageElement.getIntAttribute("width", 0); imageHeight = imageElement.getIntAttribute("height", 0); image = getRelativeFileHandle(tmxFile, imageSource); image = getRelativeFileHandle(getRelativeFileHandle(tmxFile, source), imageSource); } else { image = getRelativeFileHandle(tmxFile, imageSource); loadObject(map, tile, objectElement); loadProperties(tile.getProperties(), properties); loadProperties(tileset.getProperties(), properties);
/** Loads the {@link TiledMap} from the given file. The file is resolved via the {@link FileHandleResolver} set in the * constructor of this class. By default it will resolve to an internal file. The map will be loaded for a y-up coordinate * system. * @param fileName the filename * @return the TiledMap */ public TiledMap load (String fileName) { return load(fileName, new TmxMapLoader.Parameters()); }
@Override public void create () { float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); camera = new OrthographicCamera(); camera.setToOrtho(false, (w / h) * 10, 10); camera.zoom = 2; camera.update(); cameraController = new OrthoCamController(camera); Gdx.input.setInputProcessor(cameraController); font = new BitmapFont(); batch = new SpriteBatch(); shapeRenderer = new ShapeRenderer(); assetManager = new AssetManager(); assetManager.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver())); assetManager.load(MAP_ORTHO, TiledMap.class); assetManager.load(MAP_ISO, TiledMap.class); assetManager.load(MAP_ISO_STAG, TiledMap.class); assetManager.load(MAP_HEX_X, TiledMap.class); assetManager.load(MAP_HEX_Y, TiledMap.class); assetManager.finishLoading(); map = assetManager.get(MAP_ORTHO); renderer = new OrthogonalTiledMapRenderer(map, 1f / 32f); }
loadProperties(map.getProperties(), properties); loadTileSet(map, element, tmxFile, imageResolver); root.removeChild(element); loadLayer(map, map.getLayers(), element, tmxFile, imageResolver);
FileHandle tsx = getRelativeFileHandle(tmxFile, source); try { element = xml.parse(tsx); imageWidth = imageElement.getIntAttribute("width", 0); imageHeight = imageElement.getIntAttribute("height", 0); image = getRelativeFileHandle(tsx, imageSource); imageWidth = imageElement.getIntAttribute("width", 0); imageHeight = imageElement.getIntAttribute("height", 0); image = getRelativeFileHandle(tmxFile, imageSource); image = getRelativeFileHandle(getRelativeFileHandle(tmxFile, source), imageSource); } else { image = getRelativeFileHandle(tmxFile, imageSource); loadObject(map, tile, objectElement); loadProperties(tile.getProperties(), properties); loadProperties(tileset.getProperties(), properties);
/** Retrieves TiledMap resource dependencies * * @param fileName * @param parameter not used for now * @return dependencies for the given .tmx file */ @Override public Array<AssetDescriptor> getDependencies (String fileName, FileHandle tmxFile, Parameters parameter) { Array<AssetDescriptor> dependencies = new Array<AssetDescriptor>(); try { root = xml.parse(tmxFile); boolean generateMipMaps = (parameter != null && parameter.generateMipMaps); TextureLoader.TextureParameter texParams = new TextureParameter(); texParams.genMipMaps = generateMipMaps; if (parameter != null) { texParams.minFilter = parameter.textureMinFilter; texParams.magFilter = parameter.textureMagFilter; } for (FileHandle image : loadTilesets(root, tmxFile)) { dependencies.add(new AssetDescriptor(image, Texture.class, texParams)); } for (FileHandle image : loadImages(root, tmxFile)) { dependencies.add(new AssetDescriptor(image, Texture.class, texParams)); } return dependencies; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }
@Override public void create () { float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); camera = new OrthographicCamera(); camera.setToOrtho(false, (w / h) * 10, 10); camera.position.set(10.0f, 2.5f, 0.0f); camera.update(); cameraController = new OrthoCamController(camera); Gdx.input.setInputProcessor(cameraController); font = new BitmapFont(); batch = new SpriteBatch(); // These two maps should appear identical -- a ring of grass with water inside and out. // The original is correct, without the bug fix to TiledMapTileSets.java that acompanies // this test, the latter appears as all grass. // map = new TmxMapLoader().load("data/maps/tiled/external-tilesets/test_original.tmx"); map = new TmxMapLoader().load("data/maps/tiled/external-tilesets/test_extended.tmx"); renderer = new IsometricTiledMapRenderer(map, 1f / 32f); }
private void processSingleMap (File mapFile, FileHandle dirHandle, Settings texturePackerSettings) throws IOException { boolean combineTilesets = this.settings.combineTilesets; if (combineTilesets == false) { tilesetUsedIds = new HashMap<String, IntArray>(); tilesetsToPack = new ObjectMap<String, TiledMapTileSet>(); } map = mapLoader.load(mapFile.getCanonicalPath()); // if enabled, build a list of used tileids for the tileset used by this map boolean stripUnusedTiles = this.settings.stripUnusedTiles; if (stripUnusedTiles) { stripUnusedTiles(); } else { for (TiledMapTileSet tileset : map.getTileSets()) { String tilesetName = tileset.getName(); if (!tilesetsToPack.containsKey(tilesetName)) { tilesetsToPack.put(tilesetName, tileset); } } } if (combineTilesets == false) { FileHandle tmpHandle = new FileHandle(mapFile.getName()); this.settings.atlasOutputName = tmpHandle.nameWithoutExtension(); packTilesets(dirHandle, texturePackerSettings); } FileHandle tmxFile = new FileHandle(mapFile.getCanonicalPath()); writeUpdatedTMX(map, tmxFile); }
@Override protected void initialize() { super.initialize(); loader = new TmxMapLoader(); }
/** Loads the {@link TiledMap} from the given file. The file is resolved via the {@link FileHandleResolver} set in the * constructor of this class. By default it will resolve to an internal file. * @param fileName the filename * @param parameters specifies whether to use y-up, generate mip maps etc. * @return the TiledMap */ public TiledMap load (String fileName, TmxMapLoader.Parameters parameters) { try { this.convertObjectToTileSpace = parameters.convertObjectToTileSpace; this.flipY = parameters.flipY; FileHandle tmxFile = resolve(fileName); root = xml.parse(tmxFile); ObjectMap<String, Texture> textures = new ObjectMap<String, Texture>(); Array<FileHandle> textureFiles = loadTilesets(root, tmxFile); textureFiles.addAll(loadImages(root, tmxFile)); for (FileHandle textureFile : textureFiles) { Texture texture = new Texture(textureFile, parameters.generateMipMaps); texture.setFilter(parameters.textureMinFilter, parameters.textureMagFilter); textures.put(textureFile.path(), texture); } DirectImageResolver imageResolver = new DirectImageResolver(textures); TiledMap map = loadTilemap(root, tmxFile, imageResolver); map.setOwnedResources(textures.values().toArray()); return map; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }
loadProperties(map.getProperties(), properties); loadTileSet(map, element, tmxFile, imageResolver); root.removeChild(element); loadLayer(map, map.getLayers(), element, tmxFile, imageResolver);
FileHandle tsx = getRelativeFileHandle(tmxFile, source); try { element = xml.parse(tsx); imageWidth = imageElement.getIntAttribute("width", 0); imageHeight = imageElement.getIntAttribute("height", 0); image = getRelativeFileHandle(tsx, imageSource); imageWidth = imageElement.getIntAttribute("width", 0); imageHeight = imageElement.getIntAttribute("height", 0); image = getRelativeFileHandle(tmxFile, imageSource); image = getRelativeFileHandle(getRelativeFileHandle(tmxFile, source), imageSource); } else { image = getRelativeFileHandle(tmxFile, imageSource); loadObject(map, tile, objectElement); loadProperties(tile.getProperties(), properties); loadProperties(tileset.getProperties(), properties);
/** Retrieves TiledMap resource dependencies * * @param fileName * @param parameter not used for now * @return dependencies for the given .tmx file */ @Override public Array<AssetDescriptor> getDependencies (String fileName, FileHandle tmxFile, Parameters parameter) { Array<AssetDescriptor> dependencies = new Array<AssetDescriptor>(); try { root = xml.parse(tmxFile); boolean generateMipMaps = (parameter != null && parameter.generateMipMaps); TextureLoader.TextureParameter texParams = new TextureParameter(); texParams.genMipMaps = generateMipMaps; if (parameter != null) { texParams.minFilter = parameter.textureMinFilter; texParams.magFilter = parameter.textureMagFilter; } for (FileHandle image : loadTilesets(root, tmxFile)) { dependencies.add(new AssetDescriptor(image, Texture.class, texParams)); } for (FileHandle image : loadImages(root, tmxFile)) { dependencies.add(new AssetDescriptor(image, Texture.class, texParams)); } return dependencies; } catch (IOException e) { throw new GdxRuntimeException("Couldn't load tilemap '" + fileName + "'", e); } }