Advertisement
Guest User

GamePlay.java

a guest
Aug 25th, 2016
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.23 KB | None | 0 0
  1. public class GamePlay extends InputAdapter implements Screen{
  2.  
  3.     private OrthographicCamera cam;
  4.  
  5.     private Box2DDebugRenderer debugRenderer;
  6.     private World world;
  7.     private Body playerBody;
  8.     private Array<Body> clouds;
  9.  
  10.     private Vector3 touchPoint = new Vector3();
  11.  
  12.     private Rope rope;
  13.  
  14.     private SpriteBatch batch;
  15.     private Sprite bgSprite;
  16.     private Sprite playerSprite;
  17.  
  18.     public GamePlay(){
  19.         world = new World(new Vector2(0, -9.81f), true);
  20.  
  21.         cam = new OrthographicCamera();
  22.         cam.setToOrtho(false, Gdx.graphics.getWidth() / PPM, Gdx.graphics.getHeight() / PPM);
  23.  
  24.         debugRenderer = new Box2DDebugRenderer();
  25.  
  26.         rope = new Rope(world);
  27.         clouds = new Array<Body>();
  28.  
  29.         batch = new SpriteBatch();
  30.  
  31.         createBodies();
  32.  
  33.         Gdx.input.setInputProcessor(new InputManager(cam, playerBody, clouds, rope));
  34.  
  35.         bgSprite = new Sprite(new Texture(Gdx.files.internal("background.png")));
  36.         bgSprite.setSize(Gdx.graphics.getWidth() / PPM, Gdx.graphics.getHeight() / PPM);
  37.         playerSprite = new Sprite(new Texture("playerGuy.png"));
  38.         playerSprite.setSize(30 / PPM,60 / PPM);
  39.         playerSprite.setOrigin(playerSprite.getWidth() / 2, playerSprite.getHeight() / 2); //ROTATION WRONG, TO BE FIXED LATER
  40.     }
  41.  
  42.     @Override
  43.     public void show() {}
  44.  
  45.     @Override
  46.     public void render(float delta) {
  47.         Gdx.gl.glClearColor(0f, 0.4f, 0.7f, 1f);   // clear screen
  48.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  49.  
  50.         cam.position.x = playerBody.getPosition().x;
  51.  
  52.         batch.setProjectionMatrix(cam.combined);   //begin drawing stuff
  53.         batch.begin();
  54.  
  55.         bgSprite.draw(batch);
  56.         bgSprite.setPosition(cam.position.x - bgSprite.getWidth() / 2, cam.position.y - bgSprite.getHeight() / 2);
  57.  
  58.         playerSprite.draw(batch);
  59.         playerSprite.setPosition(playerBody.getPosition().x - playerSprite.getWidth() / 2,
  60.                             playerBody.getPosition().y - playerSprite.getHeight() / 2);
  61.         playerSprite.setRotation(playerBody.getAngle() * MathUtils.radiansToDegrees);
  62.  
  63.         batch.end();                               //end drawing stuff
  64.  
  65.         world.step(1f / 60f, 8, 3);                //update and render
  66.         cam.update();
  67.         debugRenderer.render(world, cam.combined);
  68.  
  69.     }
  70.  
  71.     @Override
  72.     public void dispose() {
  73.         world.dispose();
  74.         debugRenderer.dispose();
  75.         batch.dispose();
  76.         bgSprite.getTexture().dispose();
  77.         playerSprite.getTexture().dispose();
  78.     }
  79.  
  80.     private void createBodies(){
  81.         BodyDef bdef = new BodyDef();
  82.         FixtureDef fdef = new FixtureDef();
  83.  
  84.         //bodydef
  85.         bdef.type = BodyDef.BodyType.StaticBody;
  86.         bdef.position.set(0 / PPM, 460 / PPM);
  87.  
  88.         //shape
  89.         PolygonShape ceilingShape = new PolygonShape();
  90.         ceilingShape.setAsBox(20 / PPM, 4 / PPM);
  91.  
  92.         //fixturedef
  93.         fdef.shape = ceilingShape;
  94.  
  95.         //create bunch of roof segments
  96.         for (int i = 0; i < 150; i++) {
  97.             bdef.position.x += 50 / PPM;
  98.             clouds.add(world.createBody(bdef));
  99.             clouds.get(i).createFixture(fdef);
  100.         }
  101.  
  102.         // TEMPORARY FLOOR
  103.         ceilingShape.setAsBox(400 / PPM, 4 / PPM);
  104.         bdef.position.set(250 / PPM, -10 / PPM);
  105.         world.createBody(bdef).createFixture(fdef);
  106.  
  107.         //reuse for player
  108.         bdef.type = BodyDef.BodyType.DynamicBody;
  109.         bdef.position.set(600 / PPM, 400 / PPM);
  110.         bdef.linearDamping = 0.6f;
  111.  
  112.         CircleShape playerShape = new CircleShape();
  113.         playerShape.setRadius(10 / PPM);
  114.  
  115.         fdef.shape = playerShape;
  116.         fdef.density = 1f;
  117.         fdef.restitution = 0.4f;
  118.         fdef.friction = 0.2f;
  119.  
  120.         playerBody = world.createBody(bdef);
  121.         playerBody.createFixture(fdef);
  122.     }
  123.  
  124.     @Override
  125.     public void resize(int width, int height) {
  126.         cam.viewportWidth = Gdx.graphics.getWidth() / PPM;    // 1pixel >> 100m pixel ratio
  127.         cam.viewportHeight = Gdx.graphics.getHeight() / PPM;
  128.     }
  129.  
  130.     @Override
  131.     public void pause() {}
  132.  
  133.     @Override
  134.     public void resume() {}
  135.  
  136.     @Override
  137.     public void hide() {}
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement