Skip to content
Snippets Groups Projects
Commit 03df8ca9 authored by Magnus Segtnan Skjølberg's avatar Magnus Segtnan Skjølberg
Browse files

(#18): add simple screen class for gameplay

parent 794c5294
No related branches found
No related tags found
4 merge requests!51Resolve "Adjust cannon angle from touch input",!35Draft: Resolve "Adjust cannon angle from touch input",!32Combine hud with gameplay,!25Draft: Resolve "Create UI for gameplay"
package com.game.tankwars.view;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.ScreenUtils;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.game.tankwars.TankWarsGame;
import com.game.tankwars.controller.GameController;
import com.game.tankwars.model.Tank;
public class GameScreen implements Screen {
final TankWarsGame tankWarsGame;
OrthographicCamera camera;
SpriteBatch batch;
Tank tank;
public GameScreen(final TankWarsGame tankWarsGame){
this.tankWarsGame = tankWarsGame;
camera = new OrthographicCamera();
private TankWarsGame game;
private OrthographicCamera camera;
private SpriteBatch batch;
private BitmapFont font;
private Viewport viewport;
private GameController controller;
private GameHud hud;
private Tank tank;
public GameScreen(final TankWarsGame game){
this.game = game;
batch = new SpriteBatch();
font = game.getFont();
font.getData().setScale(0.55f);
camera = game.getCamera();
tank = new Tank(new Vector2(50, 50), new Texture("tank-khaki.png"));
viewport = new FitViewport(TankWarsGame.SCREEN_WIDTH, TankWarsGame.SCREEN_HEIGHT, camera);
hud = new GameHud(viewport, batch);
controller = new GameController(this.game, this.hud, this.tank);
Gdx.input.setInputProcessor(hud.getStage());
controller.handleHudEvents();
}
@Override
public void render(float delta) {
if(Gdx.input.isKeyPressed(Input.Keys.D)) {
if(controller.isMoveRightTouched()) {
tank.moveRight();
}
if(Gdx.input.isKeyPressed(Input.Keys.A)) {
if(controller.isMoveLeftTouched()) {
tank.moveLeft();
}
ScreenUtils.clear(0, 0, 0, 1);
batch.setProjectionMatrix(viewport.getCamera().combined);
hud.getStage().draw();
batch.begin();
batch.draw(tank.getTexture(), tank.getPosition().x, tank.getPosition().y, Tank.TANK_WIDTH, Tank.TANK_HEIGHT);
batch.end();
......@@ -45,7 +68,7 @@ public class GameScreen implements Screen {
}
@Override
public void resize(int width, int height) {
viewport.update(width, height);
}
@Override
......@@ -65,6 +88,7 @@ public class GameScreen implements Screen {
@Override
public void dispose() {
hud.getStage().dispose();
batch.dispose();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment