Frontrider

Untitled

Oct 11th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.02 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment