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 | } |