SHARE
TWEET

Untitled

Frontrider Oct 11th, 2015 107 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package hu.frontrider.platformer.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.graphics.g2d.SpriteBatch;
  8. import com.badlogic.gdx.graphics.g2d.TextureAtlas;
  9. import com.badlogic.gdx.maps.tiled.TiledMap;
  10. import com.badlogic.gdx.maps.tiled.TmxMapLoader;
  11. import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
  12. import com.badlogic.gdx.math.Vector2;
  13. import com.badlogic.gdx.physics.box2d.*;
  14. import com.badlogic.gdx.scenes.scene2d.Stage;
  15. import com.badlogic.gdx.scenes.scene2d.ui.ProgressBar;
  16. import com.badlogic.gdx.scenes.scene2d.ui.Skin;
  17. import com.badlogic.gdx.scenes.scene2d.ui.Table;
  18. import com.badlogic.gdx.utils.Array;
  19. import hu.frontrider.platformer.Controller.MyContactFilter;
  20. import hu.frontrider.platformer.Classes.Disposer;
  21. import hu.frontrider.platformer.Entity.Enemy.EnemyHandler;
  22. import hu.frontrider.platformer.Interfaces.Drawable;
  23. import hu.frontrider.platformer.Interfaces.PickupObjects;
  24. import hu.frontrider.platformer.Entity.Player.Player;
  25. import hu.frontrider.platformer.Classes.BodyRemover;
  26. import hu.frontrider.platformer.Classes.Drawer;
  27. import hu.frontrider.platformer.Helper.StaticVariables;
  28. import hu.frontrider.platformer.Controller.InputController;
  29. import hu.frontrider.platformer.Controller.MyContactListener;
  30. import hu.frontrider.platformer.Map.*;
  31. import hu.frontrider.platformer.Classes.Updater;
  32.  
  33. import javax.xml.transform.Result;
  34.  
  35. /**
  36.  * Created by Frontrider on 2015.09.10..
  37.  */
  38.  
  39. public class GameScreen implements Screen
  40. {
  41.     private static final String LOG_TAG = "Game screen";
  42.  
  43.     private static final int POSITIONITERATIONS = 5;
  44.     private final float TIMESTEP = 1/60f;
  45.     private final int VELOCITYITERATIONS = 8;
  46.  
  47.     private static final int TILE_SIZE = StaticVariables.TILE_SIZE;
  48.     private static final float WORLD_UNIT = (float) 1/TILE_SIZE;
  49.  
  50.     private World world;
  51.     private OrthographicCamera camera;
  52.     private TiledMap map;
  53.     private OrthogonalTiledMapRenderer tileRenderer;
  54.     private SpriteBatch batch;
  55.     private SpriteBatch UIBatch;
  56.     private BodyRemover bodyRemover;
  57.  
  58.     private EnemyHandler enemyHandler;
  59.     private Updater updater;
  60.     private Disposer disposer;
  61.     private Drawer drawer;
  62.  
  63.     Array<Body> bodies;
  64.  
  65.     private Player player;
  66.  
  67.     private Stage gui;
  68.     private Table table;
  69.     private TextureAtlas atlas;
  70.     private Skin GuiSkin;
  71.     private ProgressBar shieldbar;
  72.     boolean running = true;
  73.     Array results;
  74.  
  75.     private InputController inputController;
  76.  
  77.     public GameScreen(String mapname)
  78.     {
  79.         map = new TmxMapLoader().load("maps/"+mapname+".tmx");
  80.     }
  81.  
  82.     @Override
  83.     public void show()
  84.     {
  85.         results = new Array();
  86.         if(running){
  87.         world = new World(new Vector2(0,-15f),true);
  88.         bodyRemover = new BodyRemover();
  89.         bodies = new Array();
  90.  
  91.         batch = new SpriteBatch();
  92.         UIBatch = new SpriteBatch();
  93.  
  94.         camera = new OrthographicCamera(Gdx.graphics.getWidth()/25 ,Gdx.graphics.getHeight()/25);
  95.         camera.setToOrtho(false, Gdx.graphics.getWidth() / 25 / 3, Gdx.graphics.getHeight() / 25 / 3);
  96.  
  97.  
  98.  
  99.         GroundLoader.buildShapes(map, TILE_SIZE, world);
  100.         OneWayPlatform.buildShapes(map, TILE_SIZE, world);
  101.         ArcLoader.LoadArcs(map, world);
  102.  
  103.         tileRenderer = new OrthogonalTiledMapRenderer(map,WORLD_UNIT);
  104.         tileRenderer.setView(camera);
  105.             player = new Player(world, PlayerLoader.getPos(map));
  106.             camera.zoom = 2f;
  107.  
  108.  
  109.             camera.position.set(player.getPosition().x, player.getPosition().y, 0);
  110.  
  111.             enemyHandler = new EnemyHandler( EnemyLoader.getPos(map, world,player),player);
  112.  
  113.             ZoneLoader.getPos(map, world);
  114.  
  115.             MapEnd.buildShapes(map,TILE_SIZE,world);
  116.  
  117.             Array<PickupObjects> Pickups = new Array();
  118.             Pickups.addAll(EnergyCellLoader.getPos(map, world));
  119.             Pickups.addAll(PowerupLoader.getPos(map, world, TILE_SIZE));
  120.             updater = new Updater();
  121.             updater.add(enemyHandler.getEnemies());
  122.             updater.add(player);
  123.  
  124.             player.setUpdater(updater);
  125.  
  126.             disposer = new Disposer();
  127.             disposer.add(enemyHandler.getEnemies());
  128.             disposer.add(player);
  129.             disposer.add(Pickups);
  130.  
  131.             drawer = new Drawer();
  132.             drawer.add(Pickups);
  133.  
  134.  
  135.             world.setContactFilter(new MyContactFilter());
  136.             world.setContactListener(new MyContactListener());
  137.  
  138.             gui = new Stage();
  139.             table = new Table();
  140.  
  141.             atlas = new TextureAtlas(Gdx.files.internal("gui/ui.pack"));
  142.             GuiSkin = new Skin(Gdx.files.internal("gui/ui.json"),atlas);
  143.  
  144.             shieldbar = new ProgressBar(0f,100f,1f,false,GuiSkin);
  145.             shieldbar.setRange(0,100);
  146.  
  147.             table.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
  148.             table.add(shieldbar);
  149.             table.top();
  150.             table.left();
  151.             gui.addActor(table);
  152.  
  153.         inputController = new InputController(player, player);
  154.                     Gdx.input.setInputProcessor(inputController);
  155.  
  156.         inputController.enableTouch(camera);
  157.         switch (Gdx.app.getType()) {
  158.             case Android:
  159.                 // android specific code
  160.  
  161.                 break;
  162.             case Desktop:
  163.                 // desktop specific code
  164.                 break;
  165.             default:
  166.                 // Other platforms specific code
  167.         }
  168.  
  169.     }
  170.  
  171.         new Thread(new Runnable() {
  172.             @Override
  173.             public void run() {
  174.                 // do something important here, asynchronously to the rendering thread
  175.                 updater.Update(Gdx.graphics.getDeltaTime());
  176.                 // post a Runnable to the rendering thread that processes the result
  177.                 Gdx.app.postRunnable(new Runnable() {
  178.                     @Override
  179.                     public void run() {
  180.                         // process the result, e.g. add it to an Array<Result> field of the ApplicationListener.
  181.                         results.addAll(updater.Get());
  182.                     }
  183.                 });
  184.             }
  185.         });//.start();
  186.     }
  187.  
  188.     @Override
  189.     public void render(float delta)
  190.     {
  191.         Gdx.gl.glClearColor(0, 0, 0, 1);
  192.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  193.         Gdx.gl.glGenBuffer();
  194.  
  195.         world.getBodies(bodies);
  196.         bodyRemover.removebodies(bodies, world);
  197.         bodies.clear();
  198.         world.step(TIMESTEP, VELOCITYITERATIONS, POSITIONITERATIONS);
  199.  
  200.         enemyHandler.update(player, world);
  201.         updater.Update(delta);
  202.  
  203.         camera.position.set(player.getPosition().x, player.getPosition().y, 0);
  204.         camera.update();
  205.  
  206.         tileRenderer.setView(camera);
  207.         tileRenderer.render();
  208.  
  209.         batch.setProjectionMatrix(camera.combined);
  210.         batch.begin();
  211.         drawer.Draw(batch, world);
  212.        // drawer.Draw(batch,world,results);
  213.         batch.end();
  214.  
  215.         shieldbar.setValue(player.getShield());
  216.         gui.act();
  217.  
  218.         UIBatch.begin();
  219.         gui.draw();
  220.         UIBatch.end();
  221.        // debugRenderer.render(world, camera.combined);
  222.     }
  223.  
  224.     @Override
  225.     public void resize(int width, int height)
  226.     {
  227.               //camera.viewportWidth = width/60;
  228.               //camera.viewportWidth = height/60;
  229.              // camera.update();
  230.     }
  231.  
  232.     @Override
  233.     public void pause()
  234.     {
  235.           running = false;
  236.     }
  237.  
  238.     @Override
  239.     public void resume()
  240.     {
  241.           running = true;
  242.     }
  243.  
  244.     @Override
  245.     public void hide()
  246.     {
  247.         dispose();
  248.     }
  249.  
  250.     @Override
  251.     public void dispose()
  252.     {
  253.        // world.dispose();
  254.         //debugRenderer.dispose();
  255.         map.dispose();
  256.         gui.dispose();
  257.         atlas.dispose();
  258.         GuiSkin.dispose();
  259.         UIBatch.dispose();
  260.  
  261.         disposer.dispose();
  262.     }
  263. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top