Advertisement
dermetfan

TanteDanteTest

Oct 17th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. public class TanteDanteTest extends ApplicationAdapter implements InputProcessor {
  2.  
  3.     OrthographicCamera camera = new OrthographicCamera();
  4.     Viewport viewport = new ScreenViewport(camera);
  5.     OrthogonalTiledMapRenderer tiledMapRenderer;
  6.     SpriteBatch sb;
  7.     Texture texture;
  8.     Sprite sprite;
  9.     int[] backgroundLayers = {0}, foregroundLayers = {1};
  10.  
  11.     @Override
  12.     public void create() {
  13.         Gdx.gl.glClearColor(1, 0, 0, 1);
  14.         Gdx.input.setInputProcessor(this);
  15.  
  16.         sb = new SpriteBatch();
  17.  
  18.         // Das SpriteBatch kommt hier rein, damit der OrthogonalTiledMapRenderer nicht noch ein eigenes macht
  19.         // (man sollte immer nur ein SpriteBatch haben, da es viel Speicher braucht).
  20.         // Außerdem wird in render() tiledMapRenderer.setView(camera) gerufen, was dann
  21.         // sb.setProjectionMatrix(camera.combined) ausführt (guck dir ruhig mal den Code von setView(..) an).
  22.         // Das ist wichtig, damit das Sprite im Verhältnis zur Map richtig gerendet wird.
  23.         tiledMapRenderer = new OrthogonalTiledMapRenderer(new TmxMapLoader().load(Assets.map1), sb);
  24.  
  25.         texture = new Texture(Assets.testImage);
  26.         sprite = new Sprite(texture);
  27.     }
  28.  
  29.     @Override
  30.     public void resize(int width, int height) {
  31.         viewport.update(width, height); // berechne die camera-Matrizen der neuen Fenstergröße entsprechend
  32.     }
  33.  
  34.     @Override
  35.     public void render() {
  36.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  37.  
  38.         // zentriere camera auf das sprite
  39.         camera.position.set(sprite.getX() + sprite.getWidth() / 2, sprite.getY() + sprite.getHeight() / 2, 0);
  40.         camera.update();
  41.  
  42.         tiledMapRenderer.setView(camera); // wichtig
  43.         tiledMapRenderer.render(backgroundLayers);
  44.  
  45.         // sb.setProjectionMatrix(camera.combined); // nicht nötig, da bereits von tiledMapRenderer.setView(camera) erledigt
  46.         sb.begin();
  47.         sprite.draw(sb);
  48.         sb.end();
  49.  
  50.         tiledMapRenderer.render(foregroundLayers);
  51.     }
  52.  
  53.     @Override
  54.     public boolean keyUp(int keycode) {
  55.         switch(keycode) {
  56.         case Keys.LEFT:
  57.             sprite.translate(-50, 0);
  58.             break;
  59.         case Keys.RIGHT:
  60.             sprite.translate(50, 0);
  61.             break;
  62.         case Keys.UP:
  63.             sprite.translate(0, 50);
  64.             break;
  65.         case Keys.DOWN:
  66.             sprite.translate(0, -50);
  67.             break;
  68.         case Keys.NUM_1:
  69.             MapLayer layer = tiledMapRenderer.getMap().getLayers().get(0);
  70.             layer.setVisible(!layer.isVisible());
  71.         }
  72.         return false;
  73.     }
  74.  
  75.     @Override
  76.     public boolean scrolled(int amount) {
  77.         camera.zoom += amount / 25f;
  78.         camera.update();
  79.         return false;
  80.     }
  81.  
  82.     @Override
  83.     public void dispose() {
  84.         texture.dispose(); // niemals vergessen!
  85.     }
  86.  
  87.     // ab jetz nur noch müll
  88.  
  89.     @Override
  90.     public boolean keyDown(int keycode) {
  91.         return false;
  92.     }
  93.  
  94.     @Override
  95.     public boolean keyTyped(char character) {
  96.         return false;
  97.     }
  98.  
  99.     @Override
  100.     public boolean touchDown(int screenX, int screenY, int pointer, int button) {
  101.         return false;
  102.     }
  103.  
  104.     @Override
  105.     public boolean touchUp(int screenX, int screenY, int pointer, int button) {
  106.         return false;
  107.     }
  108.  
  109.     @Override
  110.     public boolean touchDragged(int screenX, int screenY, int pointer) {
  111.         return false;
  112.     }
  113.  
  114.     @Override
  115.     public boolean mouseMoved(int screenX, int screenY) {
  116.         return false;
  117.     }
  118.  
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement