From b3e652165154eaa99f9014e7666b37b75e6ad062 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Fri, 31 Jan 2020 13:53:08 +0100 Subject: [PATCH] Legger til en spillstarter og et ufullstendig spill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Legger til GameLauncher som er i stand til å vise et spill i et vindu Legger til Game som er en skjelettklasse for en representasjon av et spill --- src/main/java/inf112/skeleton/app/Game.java | 49 +++++++++++++++++++ .../inf112/skeleton/app/GameLauncher.java | 49 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 src/main/java/inf112/skeleton/app/Game.java create mode 100644 src/main/java/inf112/skeleton/app/GameLauncher.java diff --git a/src/main/java/inf112/skeleton/app/Game.java b/src/main/java/inf112/skeleton/app/Game.java new file mode 100644 index 0000000..0181e9d --- /dev/null +++ b/src/main/java/inf112/skeleton/app/Game.java @@ -0,0 +1,49 @@ +package inf112.skeleton.app; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; + +import java.util.List; + +/** + * This class represent a game which is drawable using libgdx + */ +public class Game implements IDrawableGame { + private final int TILE_SIZE = 64; + private final int TILE_NUMBER = 12; + private final int BOARD_WIDTH = TILE_SIZE * TILE_NUMBER; + private final int BOARD_HEIGHT = TILE_SIZE * TILE_NUMBER; + + private Texture robotTexture; + private Texture tileTexture; + private Texture walledTileTexture; + private Texture doublyWalledTileTexture; + private Texture slowTransportBandTexture; + + /** + * Instantiates a new Game object + */ + public Game () { + //Loads some textures + robotTexture = new Texture(Gdx.files.internal("assets/Robot.png")); + tileTexture = new Texture(Gdx.files.internal("assets/Tile.png")); + walledTileTexture = new Texture(Gdx.files.internal("assets/WalledTile.png")); + doublyWalledTileTexture = new Texture(Gdx.files.internal("assets/DoublyWalledTile.png")); + slowTransportBandTexture = new Texture(Gdx.files.internal("assets/TransportBandSlow.png")); + } + + @Override + public int getWidth() { + return 0; + } + + @Override + public int getHeight() { + return 0; + } + + @Override + public List objectsToRender() { + return null; + } +} diff --git a/src/main/java/inf112/skeleton/app/GameLauncher.java b/src/main/java/inf112/skeleton/app/GameLauncher.java new file mode 100644 index 0000000..04f575c --- /dev/null +++ b/src/main/java/inf112/skeleton/app/GameLauncher.java @@ -0,0 +1,49 @@ +package inf112.skeleton.app; + +import com.badlogic.gdx.ApplicationAdapter; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; + +/** + * This class renders a game using libgdx + */ +public class GameLauncher extends ApplicationAdapter { + private OrthographicCamera camera; + private SpriteBatch batch; + private IDrawableGame game; + + @Override + public void create() { + game = new Game(); + camera = new OrthographicCamera(); + camera.setToOrtho(false, game.getWidth(), game.getHeight()); + batch = new SpriteBatch(); + } + + /** + * Renders all textures necessary to display a game + */ + public void render() { + Gdx.gl.glClearColor(0,0,0.2f,1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + camera.update(); + batch.setProjectionMatrix(camera.combined); + batch.begin(); + //Renders all elements the game wants to render + for (IDrawableObject object : game.objectsToRender()) { + batch.draw(object.getTexture(), object.getXPosition(), object.getYPosition(), + (float)object.getWidth()/2, (float)object.getHeight()/2, object.getWidth(), + object.getHeight(), 1, 1, object.getRotation(), + 0, 0, object.getTexture().getWidth(), object.getTexture().getHeight(), object.flipX(), + object.flipY()); + } + batch.end(); + } + + @Override + public void dispose() { + batch.dispose(); + } +} \ No newline at end of file