Advertisement
Guest User

libgdx maintaing aspect ratio

a guest
Mar 1st, 2013
938
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. package hacks;
  2.  
  3. import com.badlogic.gdx.Gdx;
  4. import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
  5. import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
  6. import com.badlogic.gdx.graphics.Color;
  7. import com.badlogic.gdx.graphics.GL10;
  8. import com.badlogic.gdx.graphics.OrthographicCamera;
  9. import com.badlogic.gdx.graphics.Pixmap;
  10. import com.badlogic.gdx.graphics.Pixmap.Format;
  11. import com.badlogic.gdx.graphics.Texture;
  12. import com.badlogic.gdx.graphics.g2d.Sprite;
  13. import com.badlogic.gdx.graphics.g2d.SpriteBatch;
  14.  
  15. public class AspectRatioDemoMain extends com.badlogic.gdx.Game {
  16.  
  17.     private static final int TEXTURE_WIDTH = 64;
  18.     private static final int TEXTURE_HEIGHT = 32;
  19.     private static final float SPRITE_WIDTH = 0.5f;
  20.  
  21.     private OrthographicCamera camera;
  22.  
  23.     private SpriteBatch spriteBatch;
  24.     private Sprite sprite;
  25.     private Texture texture;
  26.  
  27.     @Override
  28.     public void create() {
  29.         camera = new OrthographicCamera();
  30.  
  31.         Pixmap pixmap = new Pixmap(TEXTURE_WIDTH, TEXTURE_HEIGHT,
  32.                 Format.RGBA8888);
  33.         pixmap.setColor(Color.WHITE);
  34.         pixmap.fillRectangle(0, 0, TEXTURE_WIDTH, TEXTURE_HEIGHT);
  35.  
  36.         texture = new Texture(pixmap);
  37.  
  38.         sprite = new Sprite(texture);
  39.         sprite.setSize(SPRITE_WIDTH, SPRITE_WIDTH * TEXTURE_HEIGHT / TEXTURE_WIDTH);
  40.         sprite.setPosition(-0.5f * sprite.getWidth(), -0.5f * sprite.getHeight());
  41.         sprite.setColor(0f, 1f, 0f, 1f);
  42.  
  43.         spriteBatch = new SpriteBatch();
  44.     }
  45.  
  46.     @Override
  47.     public void resize(int width, int height) {
  48.         super.resize(width, height);
  49.  
  50.         float cameraWidth = Gdx.graphics.getWidth();
  51.         float cameraHeight = Gdx.graphics.getHeight();
  52.         float aspect = cameraWidth / cameraHeight;
  53.         camera.setToOrtho(false, 1.0f, 1.0f / aspect);
  54.         camera.position.set(0, 0, 0);
  55.     }
  56.  
  57.     @Override
  58.     public void render() {
  59.         super.render();
  60.         Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
  61.         Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
  62.         camera.update();
  63.         spriteBatch.setProjectionMatrix(camera.combined);
  64.         spriteBatch.begin();
  65.         sprite.draw(spriteBatch);
  66.         spriteBatch.end();
  67.     }
  68.  
  69.     public static void main(String[] args) {
  70.         LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
  71.  
  72.         config.title = AspectRatioDemoMain.class.getName();
  73.         config.width = 800;
  74.         config.height = 480;
  75.         config.fullscreen = false;
  76.         config.useGL20 = true;
  77.         config.useCPUSynch = true;
  78.         config.forceExit = true;
  79.         config.vSyncEnabled = true;
  80.  
  81.         new LwjglApplication(new AspectRatioDemoMain(), config);
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement