diff --git a/core/src/com/throwgame/main/Main.java b/core/src/com/throwgame/main/Main.java index b20c489..bc69e36 100644 --- a/core/src/com/throwgame/main/Main.java +++ b/core/src/com/throwgame/main/Main.java @@ -3,6 +3,7 @@ package com.throwgame.main; import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; @@ -12,75 +13,8 @@ import model.Level; import view.Levelscreen; import view.Titlescreen; -public class Main extends ApplicationAdapter implements InputProcessor{ +public class Main{ - int screenId; - Controller c; - Level level; - - @Override - public void create () { - c = new Controller(); - c.create(); - screenId = 0; - - } - - @Override - public void render () { - Gdx.gl.glClearColor(1f, 1f, 1f, 1f); - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - - c.getScreen().render(0); - } - - @Override - public void dispose () { - - } - - @Override - public boolean keyDown(int i) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public boolean keyUp(int i) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public boolean keyTyped(char c) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public boolean touchDown(int x, int y, int i2, int i3) { - //screen.touchDown(x,y); - return true; - } - - @Override - public boolean touchUp(int i, int i1, int i2, int i3) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public boolean touchDragged(int i, int i1, int i2) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public boolean mouseMoved(int i, int i1) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - @Override - public boolean scrolled(int i) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - public void createLvl(){ - - } } diff --git a/core/src/controller/Controller.java b/core/src/controller/Controller.java index c451998..7232006 100644 --- a/core/src/controller/Controller.java +++ b/core/src/controller/Controller.java @@ -5,33 +5,121 @@ */ package controller; +import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Game; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.Screen; -import view.AbstractScreen; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import model.Goal; +import model.Level; +import model.Projectile; +import view.Gamescreen; +import view.Levelscreen; import view.Titlescreen; /** * * @author Jan */ -public class Controller extends Game{ - +public class Controller extends ApplicationAdapter implements InputProcessor{ + + Titlescreen ts; + Levelscreen ls; + Gamescreen gs; + int levelAmount; + SpriteBatch batch; + @Override - public void create() { - setScreen(new Titlescreen(this)); + public void create(){ + ts = new Titlescreen(); + ls = null; + gs = null; + levelAmount = 10; + batch = new SpriteBatch(); + Gdx.input.setInputProcessor(this); } @Override public void render(){ - + Gdx.gl.glClearColor(1f, 1f, 1f, 1f); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + batch.begin(); + if(ts != null) ts.render(batch); + else if(ls != null) ls.render(batch); + else if(gs != null) gs.render(batch, new Level(new Goal(500,500,200,150), new Projectile(100,100,0),50,50)); + batch.end(); } - public Screen getScreen(){ - return screen; + @Override + public void dispose () { + + } + + + @Override + public boolean keyDown(int keycode) { + return false; } - + @Override + public boolean keyUp(int i) { + return false; + } + + @Override + public boolean keyTyped(char c) { + return false; + } + + @Override + public boolean touchDown(int x, int y, int i2, int i3) { + if(ts != null){ + ts.dispose(); + ts = null; + ls = new Levelscreen(levelAmount); + } + else if(ls != null){ + if(x < Gdx.graphics.getWidth() * 0.15){ + if(ls.getSelectedLevel() > 0)ls.setSelectedLevel(ls.getSelectedLevel()-1); + } + else if(x > Gdx.graphics.getWidth() * 0.85){ + if(ls.getSelectedLevel() < levelAmount) + ls.setSelectedLevel(ls.getSelectedLevel()+1); + } + else{ + ls.dispose(); + ls = null; + gs = new Gamescreen(new Level(new Goal(500,500,200,150), new Projectile(100,100,0),50,50)); + } + } + else if(gs != null){ + gs = null; + ls = new Levelscreen(levelAmount); + } + return true; + } + + @Override + public boolean touchUp(int i, int i1, int i2, int i3) { + return false; + } + + @Override + public boolean touchDragged(int i, int i1, int i2) { + return false; + } + + @Override + public boolean mouseMoved(int i, int i1) { + return false; + } + + @Override + public boolean scrolled(int i) { + return false; + } - } diff --git a/core/src/model/Level.java b/core/src/model/Level.java index 4bba4f3..8197641 100644 --- a/core/src/model/Level.java +++ b/core/src/model/Level.java @@ -74,4 +74,11 @@ public class Level { public Projectile getProjectile() { return projectile; } + + public int getPivotX(){ + return xPosPivot; + } + public int getPivotY(){ + return yPosPivot; + } } diff --git a/core/src/view/AbstractScreen.java b/core/src/view/AbstractScreen.java deleted file mode 100644 index 0ae6f47..0000000 --- a/core/src/view/AbstractScreen.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package view; - -import com.badlogic.gdx.Game; -import com.badlogic.gdx.Screen; - -/** - * - * @author Jan - */ -public class AbstractScreen implements Screen{ - protected Game game; - - public AbstractScreen(Game game){ - this.game = game; - } - - @Override - public void show() { - } - - @Override - public void render(float f) { - } - - @Override - public void resize(int i, int i1) { - } - - @Override - public void pause() { - } - - @Override - public void resume() { - } - - @Override - public void hide() { - } - - @Override - public void dispose() { - } - - public void touch(int x, int y){ - - } - - -} diff --git a/core/src/view/Gamescreen.java b/core/src/view/Gamescreen.java index 9c62ba8..c00d21a 100644 --- a/core/src/view/Gamescreen.java +++ b/core/src/view/Gamescreen.java @@ -23,76 +23,56 @@ import model.Projectile; * * @author Jan */ -public class Gamescreen extends AbstractScreen{ +public class Gamescreen{ Goal g; Projectile p; - SpriteBatch batch; //Rectangle goalLeft; //Rectangle goalRight; //Rectangle goalBottom; ShapeRenderer shapeRenderer; + int pivotX; + int pivotY; - public Gamescreen(Game game, Level level){ - super(game); + public Gamescreen(Level level){ + pivotX = level.getPivotX(); + pivotY = level.getPivotY(); g = level.getGoal(); p = level.getProjectile(); // Goal rectangles //goalLeft = new Rectangle(g.getxPos(), g.getyPos(), 0.1f * g.getSizeX(), g.getSizeY()); //goalBottom = new Rectangle(g.getxPos() + 0.1f * g.getSizeX(), g.getyPos(), 0.8f * g.getSizeX(),0.2f * g.getSizeY()); //goalRight = new Rectangle(g.getxPos() + 0.1f * g.getSizeX() + 0.8f * g.getSizeX(), g.getyPos(), 0.1f * g.getSizeX(),g.getSizeY()); - batch = new SpriteBatch(); + shapeRenderer = new ShapeRenderer(); } - @Override - public void show() { - } - @Override - public void render(float f) { + public void render(SpriteBatch batch, Level level) { + + pivotX = level.getPivotX(); + pivotY = level.getPivotY(); + g = level.getGoal(); + p = level.getProjectile(); - batch.begin(); shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); shapeRenderer.setColor(Color.BLACK); shapeRenderer.rect(g.getxPos(), g.getyPos(), 0.2f * g.getSizeX(), g.getSizeY()); shapeRenderer.rect(g.getxPos() + 0.2f * g.getSizeX(), g.getyPos(), 0.6f * g.getSizeX(),0.2f * g.getSizeY()); shapeRenderer.rect(g.getxPos() + 0.2f * g.getSizeX() + 0.6f * g.getSizeX(), g.getyPos(), 0.2f * g.getSizeX(),g.getSizeY()); shapeRenderer.circle(p.getxPos(), p.getyPos(), p.getRadius()); + shapeRenderer.setColor(Color.GRAY); + shapeRenderer.circle(pivotX, pivotY, 5); shapeRenderer.end(); - batch.end(); - if(Gdx.input.justTouched()){ - game.setScreen(new Levelscreen(game)); - } } - @Override - public void resize(int i, int i1) { - } - - @Override - public void pause() { - } - - @Override - public void resume() { - } - - @Override - public void hide() { - } - - @Override public void dispose() { } - public void update(){ - - } } diff --git a/core/src/view/Levelscreen.java b/core/src/view/Levelscreen.java index 3dd4aba..5cbd8f5 100644 --- a/core/src/view/Levelscreen.java +++ b/core/src/view/Levelscreen.java @@ -23,7 +23,7 @@ import model.Projectile; * * @author Jan */ -public class Levelscreen extends AbstractScreen{ +public class Levelscreen{ Sprite[] levelPreview; Sprite buttonRight; @@ -32,10 +32,10 @@ public class Levelscreen extends AbstractScreen{ BitmapFont font; Timer t; boolean movement; + int levelAmount; - public Levelscreen(Game game){ - super(game); - levelPreview = new Sprite[5]; + public Levelscreen(int levelAmount){ + levelPreview = new Sprite[levelAmount]; buttonRight = new Sprite(new Texture("buttonRight.png")); buttonRight.setY(Gdx.graphics.getHeight() / 2 - buttonRight.getHeight() / 2); buttonRight.setX(Gdx.graphics.getWidth() - 10 - buttonRight.getWidth()); @@ -43,6 +43,7 @@ public class Levelscreen extends AbstractScreen{ buttonLeft.setY(Gdx.graphics.getHeight() / 2 - buttonLeft.getHeight() / 2); buttonLeft.setX(10); selectedLevel = 0; + this.levelAmount = levelAmount; font = new BitmapFont(); font.setColor(Color.BLACK); @@ -70,63 +71,28 @@ public class Levelscreen extends AbstractScreen{ },0 , 0.045f); } - - @Override - public void show() { - } - - @Override - public void render(float f) { - - - SpriteBatch batch = new SpriteBatch(); - + public void render(SpriteBatch batch) { - batch.begin(); if(selectedLevel > 0){ buttonLeft.draw(batch); } - if(selectedLevel < levelPreview.length){ + if(selectedLevel < levelAmount){ buttonRight.draw(batch); } font.draw(batch, "" + selectedLevel, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2); - batch.end(); - if(Gdx.input.justTouched()){ - if(Gdx.input.getX() < Gdx.graphics.getWidth() * 0.15){ - if(selectedLevel > 0) - selectedLevel --; - } - else if(Gdx.input.getX() > Gdx.graphics.getWidth() * 0.85){ - if(selectedLevel < levelPreview.length) - selectedLevel ++; - } - else{ - dispose(); - game.setScreen(new Gamescreen(game, new Level(new Goal(400,400,200,100), new Projectile(160,160,0)))); - } - } + } - - @Override - public void resize(int i, int i1) { - } - - @Override - public void pause() { + + public void dispose(){ + t.clear(); } - - @Override - public void resume() { + + public void setSelectedLevel(int i){ + selectedLevel = i; } - - @Override - public void hide() { + public int getSelectedLevel(){ + return selectedLevel; } - @Override - public void dispose() { - t.clear(); - } - } diff --git a/core/src/view/Titlescreen.java b/core/src/view/Titlescreen.java index 46c9eaf..8bfdf82 100644 --- a/core/src/view/Titlescreen.java +++ b/core/src/view/Titlescreen.java @@ -20,18 +20,15 @@ import com.badlogic.gdx.utils.Timer; * * @author Jan */ -public class Titlescreen extends AbstractScreen{ +public class Titlescreen{ BitmapFont font; - SpriteBatch batch; Timer t; Sprite clicktostart; boolean movement; - public Titlescreen(Game game){ - super(game); + public Titlescreen(){ movement = true; - batch = new SpriteBatch(); clicktostart = new Sprite(new Texture(Gdx.files.internal("clicktostart.png"))); clicktostart.setX(Gdx.graphics.getWidth() / 2 - clicktostart.getWidth() / 2); clicktostart.setY(Gdx.graphics.getHeight() / 2 - clicktostart.getHeight() / 2); @@ -54,41 +51,9 @@ public class Titlescreen extends AbstractScreen{ } - @Override - public void show() { - } - - @Override - public void render(float f) { - - - batch.begin(); + public void render(SpriteBatch batch) { clicktostart.draw(batch); - batch.end(); - - if(Gdx.input.justTouched()){ - dispose(); - game.setScreen(new Levelscreen(game)); - } - } - - @Override - public void resize(int i, int i1) { } - - @Override - public void pause() { - } - - @Override - public void resume() { - } - - @Override - public void hide() { - } - - @Override public void dispose() { t.clear(); } diff --git a/desktop/src/com/throwgame/main/desktop/DesktopLauncher.java b/desktop/src/com/throwgame/main/desktop/DesktopLauncher.java index 116994e..b7cffc6 100644 --- a/desktop/src/com/throwgame/main/desktop/DesktopLauncher.java +++ b/desktop/src/com/throwgame/main/desktop/DesktopLauncher.java @@ -11,6 +11,6 @@ public class DesktopLauncher { //config.fullscreen = true; config.height = 720; config.width = 1280; - new LwjglApplication(new Main(), config); + new LwjglApplication(new Controller(), config); } }