All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.badlogic.gdx.tiledmappacker.TiledMapPackerTestRender Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright 2015 See AUTHORS file.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.tiledmappacker;

import java.io.File;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.maps.tiled.AtlasTmxMapLoader;
import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;

/** Renders and, optionally, deletes maps processed by TiledMapPackerTest. Run TiledMapPackerTest before running this */
public class TiledMapPackerTestRender extends ApplicationAdapter {

	// --WARNING!--
	// Please do not edit the MAP_PATH. This deletes the folder recursively and could be very dangerous. The default location is:
	// MAP_PATH = "../../tests/gdx-tests-android/assets/data/maps/tiled-atlas-processed/deleteMe/";

	private final boolean DELETE_DELETEME_FOLDER_ON_EXIT = false; // read warning before setting to true
	private final static String MAP_PATH = "../../tests/gdx-tests-android/assets/data/maps/tiled-atlas-processed/deleteMe/";

	private final String MAP_NAME = "test.tmx";
	private final String TMX_LOC = MAP_PATH + MAP_NAME;
	private final boolean CENTER_CAM = true;
	private final float WORLD_WIDTH = 32;
	private final float WORLD_HEIGHT = 18;
	private final float PIXELS_PER_METER = 32;
	private final float UNIT_SCALE = 1f / PIXELS_PER_METER;
	private AtlasTmxMapLoader.AtlasTiledMapLoaderParameters params;
	private AtlasTmxMapLoader atlasTmxMapLoader;
	private TiledMap map;
	private Viewport viewport;
	private OrthogonalTiledMapRenderer mapRenderer;
	private OrthographicCamera cam;

	@Override
	public void create () {
		atlasTmxMapLoader = new AtlasTmxMapLoader(new InternalFileHandleResolver());
		params = new AtlasTmxMapLoader.AtlasTiledMapLoaderParameters();

		params.generateMipMaps = false;
		params.convertObjectToTileSpace = false;
		params.flipY = true;

		viewport = new FitViewport(WORLD_WIDTH, WORLD_HEIGHT);
		cam = (OrthographicCamera)viewport.getCamera();

		map = atlasTmxMapLoader.load(TMX_LOC, params);
		mapRenderer = new OrthogonalTiledMapRenderer(map, UNIT_SCALE);
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0, 0, 0, 1f);
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

		viewport.apply();
		mapRenderer.setView(cam);
		mapRenderer.render();

		if (Gdx.input.isKeyPressed(Keys.ESCAPE)) {
			if (DELETE_DELETEME_FOLDER_ON_EXIT) {
				FileHandle deleteMeHandle = Gdx.files.local(MAP_PATH);
				deleteMeHandle.deleteDirectory();
			}

			dispose();
			Gdx.app.exit();
		}
	}

	@Override
	public void resize (int width, int height) {
		viewport.update(width, height, CENTER_CAM);
	}

	@Override
	public void dispose () {
		map.dispose();
	}

	public static void main (String[] args) throws Exception {
		File file = new File(MAP_PATH);
		if (!file.exists()) {
			System.out.println("Please run TiledMapPackerTest.");
			return;
		}
		new LwjglApplication(new TiledMapPackerTestRender(), "", 640, 480);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy