diff --git a/frontend/core/src/com/gameware/game/GameWare.java b/frontend/core/src/com/gameware/game/GameWare.java index 26b7cd1fab320c6e355d86821227340d279bb7ec..bef2ef236016ceb9f09ca0f060ff7069d510b6c6 100644 --- a/frontend/core/src/com/gameware/game/GameWare.java +++ b/frontend/core/src/com/gameware/game/GameWare.java @@ -5,31 +5,47 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.gameware.game.states.CreateJoinTournamentState; +import com.gameware.game.states.GameStateManager; public class GameWare extends ApplicationAdapter { - SpriteBatch batch; - Texture img; + private SpriteBatch batch; + private GameStateManager gsm; public static final int WIDTH = 480; public static final int HEIGHT = 800; - + public static final String TITLE = "WackyWare!"; + public static final String skinFilePath = "glassy/skin/glassy-ui.json"; + + private static GameWare instance = null; + + public static GameWare getInstance(){ + if( instance == null){ + instance = new GameWare(); + } + return instance; + } @Override public void create () { + gsm = new GameStateManager(); batch = new SpriteBatch(); - img = new Texture("badlogic.jpg"); + //music = Gdx.audio.newMusic(Gdx.files.internal(("music.mp3"))); + //music.setLooping(true); + //music.setVolume(0.1f); + //music.play(); + gsm.push(new CreateJoinTournamentState(gsm)); } @Override public void render () { - Gdx.gl.glClearColor(1, 0, 0, 1); + Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - batch.begin(); - batch.draw(img, 0, 0); - batch.end(); + gsm.update(Gdx.graphics.getDeltaTime()); + gsm.render(batch); } - + + @Override public void dispose () { batch.dispose(); - img.dispose(); } } diff --git a/frontend/core/src/com/gameware/game/sprites/Sprite.java b/frontend/core/src/com/gameware/game/sprites/Sprite.java index f780429dfec9caa833cf1a13e8d566669fd22de4..ea5d26d5bca8c29d706122fb22b52235b20a5443 100644 --- a/frontend/core/src/com/gameware/game/sprites/Sprite.java +++ b/frontend/core/src/com/gameware/game/sprites/Sprite.java @@ -1,5 +1,6 @@ package com.gameware.game.sprites; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Vector3; public abstract class Sprite { @@ -12,7 +13,7 @@ public abstract class Sprite { public abstract void reset(); public abstract Object report(); - public abstract void draw(); + public abstract void draw(SpriteBatch sb); public abstract void update(); public abstract void dispose(); diff --git a/frontend/core/src/com/gameware/game/states/CreateJoinTournamentState.java b/frontend/core/src/com/gameware/game/states/CreateJoinTournamentState.java index 5eac4e661c2a31a5383ff62f2a7e2c85133683d1..e301502a0db5b6f4419cf6079ed97b3d86f72b3f 100644 --- a/frontend/core/src/com/gameware/game/states/CreateJoinTournamentState.java +++ b/frontend/core/src/com/gameware/game/states/CreateJoinTournamentState.java @@ -3,50 +3,71 @@ package com.gameware.game.states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Button; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.gameware.game.GameWare; public class CreateJoinTournamentState extends State { - private Button backBtn; private Vector3 androidClick; + private Stage stage; + private Table table; - protected CreateJoinTournamentState(GameStateManager gsm) { + private int spacingOnBottom = Gdx.graphics.getHeight()/15; + private float fontScaleX = 3f; + private float fontScaleY = 3f; + private String backBtnText = "Back"; + + + + public CreateJoinTournamentState(GameStateManager gsm) { super(gsm); - cam.setToOrtho(false, GameWare.WIDTH, GameWare.HEIGHT); - backBtn = new Button(); + stage = new Stage(); + Gdx.input.setInputProcessor(stage); + Skin skin = new Skin(Gdx.files.internal(GameWare.skinFilePath)); + skin.getFont("font").getData().setScale(fontScaleX,fontScaleY); + cam.setToOrtho(false, Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2); + + table = new Table(); + table.setFillParent(true); + + table.row(); + + TextButton loginBtn = new TextButton(backBtnText, skin); + loginBtn.addListener(new ClickListener() { + @Override + public void clicked(InputEvent e, float x, float y){ + handleBtnClick(); + } + }); + table.add(loginBtn); + + stage.addActor(table); } @Override protected void handleInput() { - if(Gdx.input.justTouched()){ - androidClick = cam.unproject(new Vector3(Gdx.input.getX(),Gdx.input.getY(),0)); - if(backBtn.isBtnClicked(androidClick.x,androidClick.y)){ - gsm.push(new MenuState(gsm)); - } - } + } @Override public void update(float dt) { - handleInput(); - backBtn.update(dt); - cam.update(); } + stage.act(dt); + } @Override public void render(SpriteBatch sb) { - sb.setProjectionMatrix(cam.combined); - sb.begin(); - //sb.draw(bg, cam.position.x - (cam.viewportWidth / 2),0,HeliGame_2.WIDTH,HeliGame_2.HEIGHT); - //sb.draw(heli.getSprite(),heli.getPosition().x,heli.getPosition().y); - //sb.draw(skull.getTexture(),skull.getPosition().x,skull.getPosition().y); - //posText.getFont().draw(sb, posText.getText(), 10, HeliGame_2.HEIGHT - 10); - sb.end(); + stage.draw(); } @Override public void dispose() { - backBtn.dispose(); + stage.dispose(); } @Override @@ -58,4 +79,8 @@ public class CreateJoinTournamentState extends State { public Object report() { return this; } + + private void handleBtnClick(){ + gsm.set(new MenuState(gsm)); + } } diff --git a/frontend/core/src/com/gameware/game/states/MenuState.java b/frontend/core/src/com/gameware/game/states/MenuState.java new file mode 100644 index 0000000000000000000000000000000000000000..6a33fe03fd124cec7b0da686031cd2282b3db75e --- /dev/null +++ b/frontend/core/src/com/gameware/game/states/MenuState.java @@ -0,0 +1,57 @@ +package com.gameware.game.states; + +import com.badlogic.gdx.graphics.g2d.SpriteBatch; + +public class MenuState extends State{ + protected MenuState(GameStateManager gsm) { + super(gsm); + System.out.println("Du er i menu state :0"); + } + + @Override + protected void handleInput() { + + } + + @Override + public void update(float dt) { + + } + + @Override + public void render(SpriteBatch sb) { + + } + + @Override + public void dispose() { + + } + + @Override + public void reset() { + + } + + @Override + public Object report() { + return null; + } + + private void optionsBtnClick(){ + + } + + private void multiBtnClick(){ + + } + + private void singleBtnClick(){ + + } + + private void highscoreBtnClick(){ + + } + +} diff --git a/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java b/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java index 5b4d42f324f0633b8e44e7db00c63c361a727f4d..ac68a40a8c0b940cfb73e176af02b65671aa1d00 100644 --- a/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java +++ b/frontend/core/src/com/gameware/game/states/ViewHighScoreState.java @@ -3,51 +3,69 @@ package com.gameware.game.states; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Button; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.gameware.game.GameWare; public class ViewHighScoreState extends State { - private Button backBtn; private Vector3 androidClick; + private Stage stage; + private Table table; + + private int spacingOnBottom = Gdx.graphics.getHeight()/15; + private float fontScaleX = 3f; + private float fontScaleY = 3f; + private String backBtnText = "Back"; protected ViewHighScoreState(GameStateManager gsm) { super(gsm); - cam.setToOrtho(false, GameWare.WIDTH, GameWare.HEIGHT); - backBtn = new Button(); + stage = new Stage(); + Gdx.input.setInputProcessor(stage); + Skin skin = new Skin(Gdx.files.internal(GameWare.skinFilePath)); + skin.getFont("font").getData().setScale(fontScaleX,fontScaleY); + cam.setToOrtho(false, Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2); + + table = new Table(); + table.setFillParent(true); + + table.row(); + + TextButton loginBtn = new TextButton(backBtnText, skin); + loginBtn.addListener(new ClickListener() { + @Override + public void clicked(InputEvent e, float x, float y){ + handleBtnClick(); + } + }); + table.add(loginBtn); + + stage.addActor(table); } @Override protected void handleInput() { - if(Gdx.input.justTouched()){ - androidClick = cam.unproject(new Vector3(Gdx.input.getX(),Gdx.input.getY(),0)); - if(backBtn.isBtnClicked(androidClick.x,androidClick.y)){ - gsm.push(new MenuState(gsm)); - } - } + } @Override public void update(float dt) { - handleInput(); - backBtn.update(dt); - cam.update(); + stage.act(dt); } @Override public void render(SpriteBatch sb) { - sb.setProjectionMatrix(cam.combined); - sb.begin(); - //sb.draw(bg, cam.position.x - (cam.viewportWidth / 2),0,HeliGame_2.WIDTH,HeliGame_2.HEIGHT); - //sb.draw(heli.getSprite(),heli.getPosition().x,heli.getPosition().y); - //sb.draw(skull.getTexture(),skull.getPosition().x,skull.getPosition().y); - //posText.getFont().draw(sb, posText.getText(), 10, HeliGame_2.HEIGHT - 10); - sb.end(); + stage.draw(); } @Override public void dispose() { - backBtn.dispose(); + stage.dispose(); } @Override @@ -59,4 +77,8 @@ public class ViewHighScoreState extends State { public Object report() { return this; } + + private void handleBtnClick(){ + gsm.set(new CreateJoinTournamentState(gsm)); + } } \ No newline at end of file diff --git a/frontend/core/src/com/gameware/game/states/ViewTournamentState.java b/frontend/core/src/com/gameware/game/states/ViewTournamentState.java index 4f72d2084d8df0b2f4b29774ea70373ccda4d732..e5cbf002fd64ac593b8cbb7914a32c78e352e2ab 100644 --- a/frontend/core/src/com/gameware/game/states/ViewTournamentState.java +++ b/frontend/core/src/com/gameware/game/states/ViewTournamentState.java @@ -4,51 +4,69 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Button; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.gameware.game.GameWare; public class ViewTournamentState extends State { - private Button backBtn; private Vector3 androidClick; + private Stage stage; + private Table table; + + private int spacingOnBottom = Gdx.graphics.getHeight()/15; + private float fontScaleX = 3f; + private float fontScaleY = 3f; + private String backBtnText = "Back"; protected ViewTournamentState(GameStateManager gsm) { super(gsm); - cam.setToOrtho(false, GameWare.WIDTH, GameWare.HEIGHT); - backBtn = new Button(); + stage = new Stage(); + Gdx.input.setInputProcessor(stage); + Skin skin = new Skin(Gdx.files.internal(GameWare.skinFilePath)); + skin.getFont("font").getData().setScale(fontScaleX,fontScaleY); + cam.setToOrtho(false, Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2); + + table = new Table(); + table.setFillParent(true); + + table.row(); + + TextButton loginBtn = new TextButton(backBtnText, skin); + loginBtn.addListener(new ClickListener() { + @Override + public void clicked(InputEvent e, float x, float y){ + handleBtnClick(); + } + }); + table.add(loginBtn); + + stage.addActor(table); } @Override protected void handleInput() { - if(Gdx.input.justTouched()){ - androidClick = cam.unproject(new Vector3(Gdx.input.getX(),Gdx.input.getY(),0)); - if(backBtn.isBtnClicked(androidClick.x,androidClick.y)){ - gsm.push(new CreateJoinTournamentState(gsm)); - } - } + } @Override public void update(float dt) { - handleInput(); - backBtn.update(dt); - cam.update(); + stage.act(dt); } @Override public void render(SpriteBatch sb) { - sb.setProjectionMatrix(cam.combined); - sb.begin(); - //sb.draw(bg, cam.position.x - (cam.viewportWidth / 2),0,HeliGame_2.WIDTH,HeliGame_2.HEIGHT); - //sb.draw(heli.getSprite(),heli.getPosition().x,heli.getPosition().y); - //sb.draw(skull.getTexture(),skull.getPosition().x,skull.getPosition().y); - //posText.getFont().draw(sb, posText.getText(), 10, HeliGame_2.HEIGHT - 10); - sb.end(); + stage.draw(); } @Override public void dispose() { - backBtn.dispose(); + stage.dispose(); } @Override @@ -60,4 +78,8 @@ public class ViewTournamentState extends State { public Object report() { return this; } + + private void handleBtnClick(){ + gsm.set(new MenuState(gsm)); + } }