Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.tiled.tiledexample.screens;
- import com.badlogic.gdx.Gdx;
- import com.badlogic.gdx.Screen;
- import com.badlogic.gdx.graphics.GL20;
- import com.badlogic.gdx.graphics.OrthographicCamera;
- import com.badlogic.gdx.input.GestureDetector;
- import com.badlogic.gdx.input.GestureDetector.GestureAdapter;
- import com.badlogic.gdx.maps.tiled.TiledMap;
- import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;
- import com.badlogic.gdx.maps.tiled.TmxMapLoader;
- import com.badlogic.gdx.maps.tiled.renderers.IsometricTiledMapRenderer;
- import com.badlogic.gdx.math.Vector2;
- public class GameScreen implements Screen {
- private TiledMap gamemap;
- private OrthographicCamera camera;
- private IsometricTiledMapRenderer maprenderer;
- @Override
- public void render(float delta) {
- Gdx.gl.glClearColor(0, 0, 0, 13);
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
- maprenderer.setView(camera);
- maprenderer.render();
- }
- @Override
- public void resize(int width, int height) {
- camera.viewportWidth = width;
- camera.viewportHeight = height;
- camera.position.x = ((TiledMapTileLayer) gamemap.getLayers().get(0)).getWidth() * ((TiledMapTileLayer) gamemap.getLayers().get(0)).getTileWidth() / 2;
- camera.update();
- }
- @Override
- public void show() {
- gamemap = new TmxMapLoader().load("maps/map2.tmx");
- maprenderer = new IsometricTiledMapRenderer(gamemap);
- camera = new OrthographicCamera();
- Gdx.input.setInputProcessor(new GestureDetector(new GestureAdapter() {
- @Override
- public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2) {
- // set camera.zoom here
- // something like this could work, but I didn't test it:
- float zoomFactor = (initialPointer1.dst(pointer1) + initialPointer2.dst(pointer2)) / 2 / 20;
- if(initialPointer1.dst(initialPointer2) > pointer1.dst(pointer2))
- camera.zoom += zoomFactor;
- else
- camera.zoom -= zoomFactor;
- if(camera.zoom > 40)
- camera.zoom = 40;
- else if(camera.zoom < 4)
- camera.zoom = 4;
- return true;
- }
- public boolean pan(final int x, final int y, final int deltaX, final int deltaY) {
- camera.position.x -= deltaX;
- camera.position.y += deltaY;
- camera.update();
- return true;
- }
- }));
- }
- @Override
- public void hide() {
- dispose();
- }
- @Override
- public void pause() {
- }
- @Override
- public void resume() {
- }
- @Override
- public void dispose() {
- gamemap.dispose();
- maprenderer.dispose();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement