From 4a95dfe4d30f45d073dfe4beebcd2ec04904cc05 Mon Sep 17 00:00:00 2001 From: SonjaMcNeilly Date: Sun, 10 Sep 2023 23:36:05 +1000 Subject: [PATCH] Added lose button and implemented lose screen Implemented LosingScreen class and a lose button on MainGameScreen for demonstration purposes until lose game state is implemented --- ...d-loop-black-and-white-aesthetic-space.jpg | Bin 0 -> 22836 bytes .../assets/images/lose-screen/lose-bg.jpg | Bin 0 -> 22836 bytes .../src/main/com/csse3200/game/GdxGame.java | 5 +- .../components/maingame/MainGameActions.java | 5 + .../maingame/MainGameLoseDisplay.java | 64 ++++++++++ .../csse3200/game/screens/LosingScreen.java | 109 ++++++++++++++++++ .../csse3200/game/screens/MainGameScreen.java | 5 +- 7 files changed, 184 insertions(+), 4 deletions(-) create mode 100644 source/core/assets/images/lose-screen/desktop-wallpaper-simple-stars-video-background-loop-black-and-white-aesthetic-space.jpg create mode 100644 source/core/assets/images/lose-screen/lose-bg.jpg create mode 100644 source/core/src/main/com/csse3200/game/components/maingame/MainGameLoseDisplay.java create mode 100644 source/core/src/main/com/csse3200/game/screens/LosingScreen.java diff --git a/source/core/assets/images/lose-screen/desktop-wallpaper-simple-stars-video-background-loop-black-and-white-aesthetic-space.jpg b/source/core/assets/images/lose-screen/desktop-wallpaper-simple-stars-video-background-loop-black-and-white-aesthetic-space.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52ca411152c83c4714fb7bd4b4d3f2fe2eaa2911 GIT binary patch literal 22836 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

W94J?#u>T;JxS&|&WjhA9A@k7bDK@h^i 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 l02C1c00000000000000000026|Jncu0RsU6KLARP|Je#!y>kEn literal 0 HcmV?d00001 diff --git a/source/core/assets/images/lose-screen/lose-bg.jpg b/source/core/assets/images/lose-screen/lose-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52ca411152c83c4714fb7bd4b4d3f2fe2eaa2911 GIT binary patch literal 22836 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

W94J?#u>T;JxS&|&WjhA9A@k7bDK@h^i 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 l02C1c00000000000000000026|Jncu0RsU6KLARP|Je#!y>kEn literal 0 HcmV?d00001 diff --git a/source/core/src/main/com/csse3200/game/GdxGame.java b/source/core/src/main/com/csse3200/game/GdxGame.java index 146fb71c7..42fdb3f7b 100644 --- a/source/core/src/main/com/csse3200/game/GdxGame.java +++ b/source/core/src/main/com/csse3200/game/GdxGame.java @@ -3,6 +3,7 @@ import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; +import com.csse3200.game.components.CombatStatsComponent; import com.csse3200.game.files.UserSettings; import com.csse3200.game.screens.*; import org.slf4j.Logger; @@ -74,13 +75,15 @@ private Screen newScreen(ScreenType screenType) { return new StoryScreen(this); case LEVEL_SELECT: return new LevelSelectScreen(this); + case LOSING_SCREEN: + return new LosingScreen(this); default: return null; } } public enum ScreenType { - MAIN_MENU, MAIN_GAME, SETTINGS, STORY_SCREEN, LEVEL_SELECT + MAIN_MENU, MAIN_GAME, SETTINGS, STORY_SCREEN, LEVEL_SELECT, LOSING_SCREEN } /** diff --git a/source/core/src/main/com/csse3200/game/components/maingame/MainGameActions.java b/source/core/src/main/com/csse3200/game/components/maingame/MainGameActions.java index cebeab67e..37dd07117 100644 --- a/source/core/src/main/com/csse3200/game/components/maingame/MainGameActions.java +++ b/source/core/src/main/com/csse3200/game/components/maingame/MainGameActions.java @@ -20,6 +20,7 @@ public MainGameActions(GdxGame game) { @Override public void create() { entity.getEvents().addListener("exit", this::onExit); + entity.getEvents().addListener("lose", this::onLose); } /** @@ -29,4 +30,8 @@ private void onExit() { logger.info("Exiting main game screen"); game.setScreen(GdxGame.ScreenType.MAIN_MENU); } + + private void onLose() { + game.setScreen(GdxGame.ScreenType.LOSING_SCREEN); + } } diff --git a/source/core/src/main/com/csse3200/game/components/maingame/MainGameLoseDisplay.java b/source/core/src/main/com/csse3200/game/components/maingame/MainGameLoseDisplay.java new file mode 100644 index 000000000..9828ee2a7 --- /dev/null +++ b/source/core/src/main/com/csse3200/game/components/maingame/MainGameLoseDisplay.java @@ -0,0 +1,64 @@ +package com.csse3200.game.components.maingame; + +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; +import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; +import com.csse3200.game.ui.UIComponent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Displays a button to exit the Main Game screen to the Main Menu screen. + */ +public class MainGameLoseDisplay extends UIComponent { + private static final Logger logger = LoggerFactory.getLogger(MainGameExitDisplay.class); + private static final float Z_INDEX = 2f; + private Table table; + + @Override + public void create() { + super.create(); + addActors(); + } + + private void addActors() { + table = new Table(); + table.top().right(); + table.setFillParent(true); + + TextButton mainMenuBtn = new TextButton("Lose", skin); + + // Triggers an event when the button is pressed. + mainMenuBtn.addListener( + new ChangeListener() { + @Override + public void changed(ChangeEvent changeEvent, Actor actor) { + logger.debug("Quit button clicked"); + entity.getEvents().trigger("lose"); + } + }); + + table.add(mainMenuBtn).padTop(-100).padBottom(-500); + + stage.addActor(table); + } + + @Override + public void draw(SpriteBatch batch) { + // draw is handled by the stage + } + + @Override + public float getZIndex() { + return Z_INDEX; + } + + @Override + public void dispose() { + table.clear(); + super.dispose(); + } +} + diff --git a/source/core/src/main/com/csse3200/game/screens/LosingScreen.java b/source/core/src/main/com/csse3200/game/screens/LosingScreen.java new file mode 100644 index 000000000..354046edc --- /dev/null +++ b/source/core/src/main/com/csse3200/game/screens/LosingScreen.java @@ -0,0 +1,109 @@ +package com.csse3200.game.screens; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.ScreenAdapter; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.Sprite; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Stage; +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.badlogic.gdx.utils.viewport.ScreenViewport; +import com.csse3200.game.GdxGame; +import com.csse3200.game.screens.text.AnimatedText; +import com.csse3200.game.services.ServiceLocator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class LosingScreen extends ScreenAdapter { + private final GdxGame game; + private SpriteBatch batch; + private Texture introImage; + private Sprite introSprite; + + private static final String TEXTURE = "planets/background.png"; + private static final String INTRO_TEXT = """ + The aliens gained control. You lose! + """; + + private BitmapFont font; + private AnimatedText text; + private Stage stage; + private TextButton exitButton; + private TextButton mainMenuButton; + private TextButton playAgainButton; + + public LosingScreen(GdxGame game) { + this.game = game; + font = new BitmapFont(); + text = new AnimatedText(INTRO_TEXT, font, 0.05f); + font.getData().setScale(2, 2); + } + + @Override + public void show() { + batch = new SpriteBatch(); + introImage = new Texture(TEXTURE); + introSprite = new Sprite(introImage); + introSprite.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + + stage = new Stage(new ScreenViewport()); + Gdx.input.setInputProcessor(stage); + + Skin skin = new Skin(Gdx.files.internal("flat-earth/skin/flat-earth-ui.json")); + exitButton = new TextButton("Exit Game", skin); + exitButton.addListener(new ClickListener(){ + public void clicked(InputEvent even, float x, float y) { + game.exit(); + } + }); + mainMenuButton = new TextButton("Back to Main Menu", skin); + mainMenuButton.addListener(new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + game.setScreen(GdxGame.ScreenType.MAIN_MENU); + } + + }); + + playAgainButton = new TextButton("Play Again", skin); + playAgainButton.addListener(new ClickListener() { + public void clicked(InputEvent even, float x, float y) { + game.setScreen(GdxGame.ScreenType.MAIN_GAME); + } + }); + + Table table = new Table(); + table.setFillParent(true); + table.add(exitButton).padTop(-100).row(); + table.add(mainMenuButton).padTop(-200).row(); + table.add(playAgainButton).padTop(-300).row(); + stage.addActor(table); + } + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(0, 0, 0, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + batch.begin(); + introSprite.draw(batch); + text.update(); + text.draw(batch, 730, 800); // Adjust the position + batch.end(); + + stage.draw(); + } + + @Override + public void dispose() { + batch.dispose(); + introImage.dispose(); + stage.dispose(); + } +} diff --git a/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java b/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java index c0f682b60..704ed65d7 100644 --- a/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java +++ b/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java @@ -20,6 +20,7 @@ import com.csse3200.game.areas.ForestGameArea; import com.csse3200.game.areas.terrain.TerrainFactory; import com.csse3200.game.components.maingame.MainGameActions; +import com.csse3200.game.components.maingame.MainGameLoseDisplay; import com.csse3200.game.entities.Entity; import com.csse3200.game.entities.EntityService; import com.csse3200.game.entities.factories.PlayerFactory; @@ -67,7 +68,6 @@ public class MainGameScreen extends ScreenAdapter { public static int viewportHeight= screenHeight; - private OrthographicCamera camera; private SpriteBatch batch; @@ -117,7 +117,6 @@ public MainGameScreen(GdxGame game) { ForestGameArea forestGameArea = new ForestGameArea(terrainFactory); forestGameArea.create(); } - @Override public void render(float delta) { physicsEngine.update(); @@ -128,7 +127,6 @@ public void render(float delta) { batch.draw(backgroundTexture, 0, 0, viewportWidth, viewportHeight); batch.end(); - renderer.render(); stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f)); stage.draw(); @@ -196,6 +194,7 @@ private void createUI() { .addComponent(new PerformanceDisplay()) .addComponent(new MainGameActions(this.game)) .addComponent(new MainGameExitDisplay()) + .addComponent(new MainGameLoseDisplay()) .addComponent(new Terminal()) .addComponent(inputComponent) .addComponent(new TerminalDisplay());