View difference between Paste ID: xjSpQzBr and T11PJqkM
SHOW: | | - or go back to the newest paste.
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
58
				if(camera.zoom > 40)
59
					camera.zoom = 40;
60
				else if(camera.zoom < 4)
61
					camera.zoom = 4;
62
				return true;
63
			}
64
65-
			public boolean pan(final int x, final int y, final int deltaX, final int deltaY) {
65+
66
			public boolean pan(float x, float y, float deltaX, float deltaY) {
67
				camera.position.x -= deltaX;
68
				camera.position.y += deltaY;
69
				camera.update();
70
				return true;
71-
			
71+
72
73
		}));
74
75
	}
76
77
	@Override
78
	public void hide() {
79
		dispose();
80
81
	}
82
83
	@Override
84
	public void pause() {
85
	}
86
87
	@Override
88
	public void resume() {
89
	}
90
91
	@Override
92
	public void dispose() {
93
		gamemap.dispose();
94
		maprenderer.dispose();
95
	}
96
97
}