GammelJan 6 years ago
parent d3763e0f06
commit 2e7622299b

@ -3,6 +3,7 @@ package com.throwgame.main;
import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Game; import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture;
@ -12,75 +13,8 @@ import model.Level;
import view.Levelscreen; import view.Levelscreen;
import view.Titlescreen; 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(){
}
} }

@ -5,33 +5,121 @@
*/ */
package controller; package controller;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Game; import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.Screen; 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; import view.Titlescreen;
/** /**
* *
* @author Jan * @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 @Override
public void create() { public void create(){
setScreen(new Titlescreen(this)); ts = new Titlescreen();
ls = null;
gs = null;
levelAmount = 10;
batch = new SpriteBatch();
Gdx.input.setInputProcessor(this);
} }
@Override @Override
public void render(){ 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(){ @Override
return screen; 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;
}
} }

@ -74,4 +74,11 @@ public class Level {
public Projectile getProjectile() { public Projectile getProjectile() {
return projectile; return projectile;
} }
public int getPivotX(){
return xPosPivot;
}
public int getPivotY(){
return yPosPivot;
}
} }

@ -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){
}
}

@ -23,76 +23,56 @@ import model.Projectile;
* *
* @author Jan * @author Jan
*/ */
public class Gamescreen extends AbstractScreen{ public class Gamescreen{
Goal g; Goal g;
Projectile p; Projectile p;
SpriteBatch batch;
//Rectangle goalLeft; //Rectangle goalLeft;
//Rectangle goalRight; //Rectangle goalRight;
//Rectangle goalBottom; //Rectangle goalBottom;
ShapeRenderer shapeRenderer; ShapeRenderer shapeRenderer;
int pivotX;
int pivotY;
public Gamescreen(Game game, Level level){ public Gamescreen(Level level){
super(game); pivotX = level.getPivotX();
pivotY = level.getPivotY();
g = level.getGoal(); g = level.getGoal();
p = level.getProjectile(); p = level.getProjectile();
// Goal rectangles // Goal rectangles
//goalLeft = new Rectangle(g.getxPos(), g.getyPos(), 0.1f * g.getSizeX(), g.getSizeY()); //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()); //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()); //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(); shapeRenderer = new ShapeRenderer();
} }
@Override
public void show() {
}
@Override public void render(SpriteBatch batch, Level level) {
public void render(float f) {
pivotX = level.getPivotX();
pivotY = level.getPivotY();
g = level.getGoal();
p = level.getProjectile();
batch.begin();
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(Color.BLACK); shapeRenderer.setColor(Color.BLACK);
shapeRenderer.rect(g.getxPos(), g.getyPos(), 0.2f * g.getSizeX(), g.getSizeY()); 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(), 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.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.circle(p.getxPos(), p.getyPos(), p.getRadius());
shapeRenderer.setColor(Color.GRAY);
shapeRenderer.circle(pivotX, pivotY, 5);
shapeRenderer.end(); 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 dispose() {
} }
public void update(){
}
} }

@ -23,7 +23,7 @@ import model.Projectile;
* *
* @author Jan * @author Jan
*/ */
public class Levelscreen extends AbstractScreen{ public class Levelscreen{
Sprite[] levelPreview; Sprite[] levelPreview;
Sprite buttonRight; Sprite buttonRight;
@ -32,10 +32,10 @@ public class Levelscreen extends AbstractScreen{
BitmapFont font; BitmapFont font;
Timer t; Timer t;
boolean movement; boolean movement;
int levelAmount;
public Levelscreen(Game game){ public Levelscreen(int levelAmount){
super(game); levelPreview = new Sprite[levelAmount];
levelPreview = new Sprite[5];
buttonRight = new Sprite(new Texture("buttonRight.png")); buttonRight = new Sprite(new Texture("buttonRight.png"));
buttonRight.setY(Gdx.graphics.getHeight() / 2 - buttonRight.getHeight() / 2); buttonRight.setY(Gdx.graphics.getHeight() / 2 - buttonRight.getHeight() / 2);
buttonRight.setX(Gdx.graphics.getWidth() - 10 - buttonRight.getWidth()); 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.setY(Gdx.graphics.getHeight() / 2 - buttonLeft.getHeight() / 2);
buttonLeft.setX(10); buttonLeft.setX(10);
selectedLevel = 0; selectedLevel = 0;
this.levelAmount = levelAmount;
font = new BitmapFont(); font = new BitmapFont();
font.setColor(Color.BLACK); font.setColor(Color.BLACK);
@ -70,63 +71,28 @@ public class Levelscreen extends AbstractScreen{
},0 , 0.045f); },0 , 0.045f);
} }
public void render(SpriteBatch batch) {
@Override
public void show() {
}
@Override
public void render(float f) {
SpriteBatch batch = new SpriteBatch();
batch.begin();
if(selectedLevel > 0){ if(selectedLevel > 0){
buttonLeft.draw(batch); buttonLeft.draw(batch);
} }
if(selectedLevel < levelPreview.length){ if(selectedLevel < levelAmount){
buttonRight.draw(batch); buttonRight.draw(batch);
} }
font.draw(batch, "" + selectedLevel, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2); 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 dispose(){
public void resize(int i, int i1) { t.clear();
}
@Override
public void pause() {
} }
@Override public void setSelectedLevel(int i){
public void resume() { selectedLevel = i;
} }
public int getSelectedLevel(){
@Override return selectedLevel;
public void hide() {
} }
@Override
public void dispose() {
t.clear();
}
} }

@ -20,18 +20,15 @@ import com.badlogic.gdx.utils.Timer;
* *
* @author Jan * @author Jan
*/ */
public class Titlescreen extends AbstractScreen{ public class Titlescreen{
BitmapFont font; BitmapFont font;
SpriteBatch batch;
Timer t; Timer t;
Sprite clicktostart; Sprite clicktostart;
boolean movement; boolean movement;
public Titlescreen(Game game){ public Titlescreen(){
super(game);
movement = true; movement = true;
batch = new SpriteBatch();
clicktostart = new Sprite(new Texture(Gdx.files.internal("clicktostart.png"))); clicktostart = new Sprite(new Texture(Gdx.files.internal("clicktostart.png")));
clicktostart.setX(Gdx.graphics.getWidth() / 2 - clicktostart.getWidth() / 2); clicktostart.setX(Gdx.graphics.getWidth() / 2 - clicktostart.getWidth() / 2);
clicktostart.setY(Gdx.graphics.getHeight() / 2 - clicktostart.getHeight() / 2); clicktostart.setY(Gdx.graphics.getHeight() / 2 - clicktostart.getHeight() / 2);
@ -54,41 +51,9 @@ public class Titlescreen extends AbstractScreen{
} }
@Override public void render(SpriteBatch batch) {
public void show() {
}
@Override
public void render(float f) {
batch.begin();
clicktostart.draw(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() { public void dispose() {
t.clear(); t.clear();
} }

@ -11,6 +11,6 @@ public class DesktopLauncher {
//config.fullscreen = true; //config.fullscreen = true;
config.height = 720; config.height = 720;
config.width = 1280; config.width = 1280;
new LwjglApplication(new Main(), config); new LwjglApplication(new Controller(), config);
} }
} }

Loading…
Cancel
Save