Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TanteDanteTest extends ApplicationAdapter implements InputProcessor {
- OrthographicCamera camera = new OrthographicCamera();
- Viewport viewport = new ScreenViewport(camera);
- OrthogonalTiledMapRenderer tiledMapRenderer;
- SpriteBatch sb;
- Texture texture;
- Sprite sprite;
- int[] backgroundLayers = {0}, foregroundLayers = {1};
- @Override
- public void create() {
- Gdx.gl.glClearColor(1, 0, 0, 1);
- Gdx.input.setInputProcessor(this);
- sb = new SpriteBatch();
- // Das SpriteBatch kommt hier rein, damit der OrthogonalTiledMapRenderer nicht noch ein eigenes macht
- // (man sollte immer nur ein SpriteBatch haben, da es viel Speicher braucht).
- // Außerdem wird in render() tiledMapRenderer.setView(camera) gerufen, was dann
- // sb.setProjectionMatrix(camera.combined) ausführt (guck dir ruhig mal den Code von setView(..) an).
- // Das ist wichtig, damit das Sprite im Verhältnis zur Map richtig gerendet wird.
- tiledMapRenderer = new OrthogonalTiledMapRenderer(new TmxMapLoader().load(Assets.map1), sb);
- texture = new Texture(Assets.testImage);
- sprite = new Sprite(texture);
- }
- @Override
- public void resize(int width, int height) {
- viewport.update(width, height); // berechne die camera-Matrizen der neuen Fenstergröße entsprechend
- }
- @Override
- public void render() {
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
- // zentriere camera auf das sprite
- camera.position.set(sprite.getX() + sprite.getWidth() / 2, sprite.getY() + sprite.getHeight() / 2, 0);
- camera.update();
- tiledMapRenderer.setView(camera); // wichtig
- tiledMapRenderer.render(backgroundLayers);
- // sb.setProjectionMatrix(camera.combined); // nicht nötig, da bereits von tiledMapRenderer.setView(camera) erledigt
- sb.begin();
- sprite.draw(sb);
- sb.end();
- tiledMapRenderer.render(foregroundLayers);
- }
- @Override
- public boolean keyUp(int keycode) {
- switch(keycode) {
- case Keys.LEFT:
- sprite.translate(-50, 0);
- break;
- case Keys.RIGHT:
- sprite.translate(50, 0);
- break;
- case Keys.UP:
- sprite.translate(0, 50);
- break;
- case Keys.DOWN:
- sprite.translate(0, -50);
- break;
- case Keys.NUM_1:
- MapLayer layer = tiledMapRenderer.getMap().getLayers().get(0);
- layer.setVisible(!layer.isVisible());
- }
- return false;
- }
- @Override
- public boolean scrolled(int amount) {
- camera.zoom += amount / 25f;
- camera.update();
- return false;
- }
- @Override
- public void dispose() {
- texture.dispose(); // niemals vergessen!
- }
- // ab jetz nur noch müll
- @Override
- public boolean keyDown(int keycode) {
- return false;
- }
- @Override
- public boolean keyTyped(char character) {
- return false;
- }
- @Override
- public boolean touchDown(int screenX, int screenY, int pointer, int button) {
- return false;
- }
- @Override
- public boolean touchUp(int screenX, int screenY, int pointer, int button) {
- return false;
- }
- @Override
- public boolean touchDragged(int screenX, int screenY, int pointer) {
- return false;
- }
- @Override
- public boolean mouseMoved(int screenX, int screenY) {
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement