From c961ed57987ca4f35ba02f16f17b25e90564c9bf Mon Sep 17 00:00:00 2001 From: Marty <104225647+mklemmingen@users.noreply.github.com> Date: Sat, 13 Jan 2024 16:30:22 +0100 Subject: [PATCH] menu music sound change --- core/src/com/boomchess/game/BoomChess.java | 5 +++++ .../boomchess/game/frontend/stage/GameStage.java | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/src/com/boomchess/game/BoomChess.java b/core/src/com/boomchess/game/BoomChess.java index 2ec7c36..6fa5878 100644 --- a/core/src/com/boomchess/game/BoomChess.java +++ b/core/src/com/boomchess/game/BoomChess.java @@ -463,6 +463,7 @@ public class BoomChess extends ApplicationAdapter { // ------------------------------------------------------ public static boolean dogIsJeep = true; + public static boolean nonInvasiveReRender = false; @Override public void create() { @@ -1478,6 +1479,7 @@ public void changed(ChangeEvent event, Actor actor) { @Override public void changed(ChangeEvent event, Actor actor) { isColourChanged = !isColourChanged; + nonInvasiveReRender = true; currentStage = GameStage.createGameStage(isBotMatch); addAudioTable(); createInGameOptionStages(); @@ -1539,6 +1541,7 @@ public void changed(ChangeEvent event, Actor actor) { attackCircleButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { + nonInvasiveReRender = true; showAttackCircle = !showAttackCircle; createInGameOptionStages(); } @@ -1581,6 +1584,7 @@ public void changed(ChangeListener.ChangeEvent event, Actor actor) { dogIsCarButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { + nonInvasiveReRender = true; dogIsJeep = !dogIsJeep; createInGameOptionStages(); } @@ -1604,6 +1608,7 @@ public void changed(ChangeEvent event, Actor actor) { animationButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { + nonInvasiveReRender = true; isAnimated = !isAnimated; createInGameOptionStages(); } diff --git a/core/src/com/boomchess/game/frontend/stage/GameStage.java b/core/src/com/boomchess/game/frontend/stage/GameStage.java index 464e55d..b9170b6 100644 --- a/core/src/com/boomchess/game/frontend/stage/GameStage.java +++ b/core/src/com/boomchess/game/frontend/stage/GameStage.java @@ -38,6 +38,9 @@ public class GameStage { + // used for nonInvasive reRendering + private static Soldier[][] lastGameBoard = new Soldier[9][8]; + private static boolean showHealth = false; private final Stage gameStage; @@ -75,7 +78,12 @@ public static Stage createGameStage(final boolean isBotMatch) { root.setPosition((float) Gdx.graphics.getWidth() / 2 - root.getWidth() / 2, (float) Gdx.graphics.getHeight() / 2 - root.getHeight() / 2); - Soldier[][] gameBoard = Board.getGameBoard(); + Soldier[][] gameBoard; + if(nonInvasiveReRender){ + gameBoard = lastGameBoard; + } else { + gameBoard = Board.getGameBoard(); + } for (int j = 0; j < numRows; j++) { root.row(); @@ -707,6 +715,9 @@ public void changed(ChangeEvent event, Actor actor) { } }); + lastGameBoard = gameBoard; + nonInvasiveReRender = false; + return gameStage; }