Advertisement
dermetfan

digging animation test for Essa Rebano (play screen)

Aug 4th, 2013
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.16 KB | None | 0 0
  1. package net.dermetfan.someLibgdxTests.screens;
  2.  
  3. import java.util.Iterator;
  4.  
  5. import net.dermetfan.libgdx.InputListener;
  6. import net.dermetfan.someLibgdxTests.Assets;
  7. import net.dermetfan.someLibgdxTests.entities.EssaRebano;
  8.  
  9. import com.badlogic.gdx.Gdx;
  10. import com.badlogic.gdx.InputMultiplexer;
  11. import com.badlogic.gdx.Screen;
  12. import com.badlogic.gdx.graphics.GL20;
  13. import com.badlogic.gdx.graphics.OrthographicCamera;
  14. import com.badlogic.gdx.graphics.g2d.Sprite;
  15. import com.badlogic.gdx.graphics.g2d.SpriteBatch;
  16. import com.badlogic.gdx.maps.tiled.TiledMap;
  17. import com.badlogic.gdx.maps.tiled.TiledMapTile;
  18. import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;
  19. import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell;
  20. import com.badlogic.gdx.maps.tiled.TmxMapLoader;
  21. import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
  22. import com.badlogic.gdx.maps.tiled.tiles.AnimatedTiledMapTile;
  23. import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile;
  24. import com.badlogic.gdx.utils.Array;
  25.  
  26. public class EssaRebanoDiggingAnimationTest implements Screen {
  27.  
  28.     private OrthographicCamera camera;
  29.     private SpriteBatch batch;
  30.     private OrthogonalTiledMapRenderer renderer;
  31.     private TiledMap map;
  32.  
  33.     private EssaRebano player;
  34.  
  35.     private int[] background = new int[] {0}, foreground = new int[] {1};
  36.  
  37.     @Override
  38.     public void render(float delta) {
  39.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
  40.  
  41.         camera.position.set(player.getX() + player.getWidth() / 2, player.getY() + player.getHeight() / 2, 0);
  42.         camera.update();
  43.  
  44.         renderer.setView(camera);
  45.         renderer.render(background);
  46.  
  47.         batch.begin();
  48.         player.draw(batch);
  49.         batch.end();
  50.  
  51.         renderer.render(foreground);
  52.     }
  53.  
  54.     @Override
  55.     public void resize(int width, int height) {
  56.         camera.viewportWidth = width / 2;
  57.         camera.viewportHeight = height / 2;
  58.     }
  59.  
  60.     @Override
  61.     public void show() {
  62.         Gdx.gl.glClearColor(0, 0, 0, 1);
  63.  
  64.         camera = new OrthographicCamera();
  65.         batch = new SpriteBatch();
  66.  
  67.         TmxMapLoader loader = new TmxMapLoader();
  68.         map = loader.load("maps/map.tmx");
  69.  
  70.         renderer = new OrthogonalTiledMapRenderer(map, batch);
  71.  
  72.         player = new EssaRebano(new Sprite(Assets.bruteWithTcng), map);
  73.         player.setPosition(5 * player.getCollisionLayer().getTileWidth(), 10 * player.getCollisionLayer().getHeight());
  74.         player.setSize(player.getCollisionLayer().getTileWidth(), player.getCollisionLayer().getTileHeight() * 1.75f);
  75.  
  76.         // ANIMATED TILES (just shamelessly copied from the series)
  77.  
  78.         // frames
  79.         Array<StaticTiledMapTile> frameTiles = new Array<StaticTiledMapTile>(2);
  80.  
  81.         // get the frame tiles
  82.         Iterator<TiledMapTile> tiles = map.getTileSets().getTileSet("tiles").iterator();
  83.         while(tiles.hasNext()) {
  84.             TiledMapTile tile = tiles.next();
  85.             if(tile.getProperties().containsKey("animation") && tile.getProperties().get("animation", String.class).equals("flower"))
  86.                 frameTiles.add((StaticTiledMapTile) tile);
  87.         }
  88.  
  89.         // create the animated tile
  90.         AnimatedTiledMapTile animatedTile = new AnimatedTiledMapTile(1 / 3f, frameTiles);
  91.         // ESSA REBANO: make the animated tile unpassable and diggable
  92.         animatedTile.getProperties().put(player.getBlockedKey(), null);
  93.         animatedTile.getProperties().put(player.getDiggableKey(), null);
  94.  
  95.         // background layer
  96.         TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get("background");
  97.  
  98.         // replace static with animated tile
  99.         for(int x = 0; x < layer.getWidth(); x++)
  100.             for(int y = 0; y < layer.getHeight(); y++) {
  101.                 Cell cell = layer.getCell(x, y);
  102.                 if(cell != null && cell.getTile() != null && cell.getTile().getProperties().containsKey("animation") && cell.getTile().getProperties().get("animation", String.class).equals("flower"))
  103.                     cell.setTile(animatedTile);
  104.             }
  105.  
  106.         Gdx.input.setInputProcessor(new InputMultiplexer(player, new InputListener() {
  107.  
  108.             @Override
  109.             public boolean scrolled(int amount) {
  110.                 camera.zoom += amount / 25f;
  111.                 return true;
  112.             }
  113.  
  114.         }));
  115.     }
  116.  
  117.     @Override
  118.     public void hide() {
  119.         dispose();
  120.     }
  121.  
  122.     @Override
  123.     public void pause() {
  124.     }
  125.  
  126.     @Override
  127.     public void resume() {
  128.     }
  129.  
  130.     @Override
  131.     public void dispose() {
  132.         renderer.dispose();
  133.         map.dispose();
  134.     }
  135.  
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement