Advertisement
dermetfan

Maykel Matheus Dias GestureAdapter use (updated pinch zoom)

Aug 5th, 2013
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.tiled.tiledexample.screens;
  2.  
  3. import com.badlogic.gdx.Gdx;
  4. import com.badlogic.gdx.Screen;
  5. import com.badlogic.gdx.graphics.GL20;
  6. import com.badlogic.gdx.graphics.OrthographicCamera;
  7. import com.badlogic.gdx.input.GestureDetector;
  8. import com.badlogic.gdx.input.GestureDetector.GestureAdapter;
  9. import com.badlogic.gdx.maps.tiled.TiledMap;
  10. import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;
  11. import com.badlogic.gdx.maps.tiled.TmxMapLoader;
  12. import com.badlogic.gdx.maps.tiled.renderers.IsometricTiledMapRenderer;
  13. import com.badlogic.gdx.math.Vector2;
  14.  
  15. public class GameScreen implements Screen {
  16.  
  17.     private TiledMap gamemap;
  18.     private OrthographicCamera camera;
  19.     private IsometricTiledMapRenderer maprenderer;
  20.  
  21.     @Override
  22.     public void render(float delta) {
  23.         Gdx.gl.glClearColor(0, 0, 0, 13);
  24.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  25.  
  26.         maprenderer.setView(camera);
  27.         maprenderer.render();
  28.     }
  29.  
  30.     @Override
  31.     public void resize(int width, int height) {
  32.         camera.viewportWidth = width;
  33.         camera.viewportHeight = height;
  34.  
  35.         camera.position.x = ((TiledMapTileLayer) gamemap.getLayers().get(0)).getWidth() * ((TiledMapTileLayer) gamemap.getLayers().get(0)).getTileWidth() / 2;
  36.         camera.update();
  37.     }
  38.  
  39.     @Override
  40.     public void show() {
  41.         gamemap = new TmxMapLoader().load("maps/map2.tmx");
  42.         maprenderer = new IsometricTiledMapRenderer(gamemap);
  43.  
  44.         camera = new OrthographicCamera();
  45.  
  46.         Gdx.input.setInputProcessor(new GestureDetector(new GestureAdapter() {
  47.  
  48.             @Override
  49.             public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2) {
  50.                 // set camera.zoom here
  51.                 // something like this could work, but I didn't test it:
  52.                 float zoomFactor = (initialPointer1.dst(pointer1) + initialPointer2.dst(pointer2)) / 2 / 20;
  53.                 if(initialPointer1.dst(initialPointer2) > pointer1.dst(pointer2))
  54.                     camera.zoom += zoomFactor;
  55.                 else
  56.                     camera.zoom -= zoomFactor;
  57.                 return true;
  58.             }
  59.         }));
  60.  
  61.     }
  62.  
  63.     @Override
  64.     public void hide() {
  65.         dispose();
  66.  
  67.     }
  68.  
  69.     @Override
  70.     public void pause() {
  71.     }
  72.  
  73.     @Override
  74.     public void resume() {
  75.     }
  76.  
  77.     @Override
  78.     public void dispose() {
  79.         gamemap.dispose();
  80.         maprenderer.dispose();
  81.     }
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement