diff options
| author | ilotterytea <iltsu@alright.party> | 2024-06-01 00:13:52 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2024-06-01 00:13:52 +0500 |
| commit | 10e9df6190ddc3f9c8dd7c86482449bec4651e0c (patch) | |
| tree | c0ff8e526dd27aa475d8feec990c91cede036519 | |
| parent | c254eb2625642e4e8991777eb0b32c3cd4b90660 (diff) | |
feat: poor transition between menu and game scenes
| -rw-r--r-- | assets/MainSpritesheet.skin | 1 | ||||
| -rw-r--r-- | core/src/com/ilotterytea/maxoning/screens/MenuScreen.java | 2 | ||||
| -rw-r--r-- | core/src/com/ilotterytea/maxoning/ui/SavegameWidget.java | 53 |
3 files changed, 40 insertions, 16 deletions
diff --git a/assets/MainSpritesheet.skin b/assets/MainSpritesheet.skin index 1f1da71..19b90a5 100644 --- a/assets/MainSpritesheet.skin +++ b/assets/MainSpritesheet.skin @@ -23,6 +23,7 @@ tile_03: { color: { hex: "#00000055" }, name: tile }, tile_04: { color: { hex: "#00ff00ff" }, name: tile }, tile_05: { color: { hex: "#222222ff" }, name: tile }, + white_tile: { color: { hex: "#ffffffff" }, name: tile }, board: { color: { hex: "#ffa61bff" }, name: tile }, shop_list: { color: {hex: "#e98e42ff" }, name: tile }, diff --git a/core/src/com/ilotterytea/maxoning/screens/MenuScreen.java b/core/src/com/ilotterytea/maxoning/screens/MenuScreen.java index ca8fb4e..d1eb98b 100644 --- a/core/src/com/ilotterytea/maxoning/screens/MenuScreen.java +++ b/core/src/com/ilotterytea/maxoning/screens/MenuScreen.java @@ -278,7 +278,7 @@ public class MenuScreen implements Screen { // - - - Savegame - - - Table savegameTable = new Table(); - SavegameWidget info = new SavegameWidget(this.game, skin, sav); + SavegameWidget info = new SavegameWidget(this.game, skin, stage, sav); savegameTable.add(info).minSize(640f, 240f); diff --git a/core/src/com/ilotterytea/maxoning/ui/SavegameWidget.java b/core/src/com/ilotterytea/maxoning/ui/SavegameWidget.java index a710418..e2cf816 100644 --- a/core/src/com/ilotterytea/maxoning/ui/SavegameWidget.java +++ b/core/src/com/ilotterytea/maxoning/ui/SavegameWidget.java @@ -1,7 +1,10 @@ package com.ilotterytea.maxoning.ui; import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.scenes.scene2d.Action; import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Align; @@ -15,14 +18,16 @@ import java.io.IOException; public class SavegameWidget extends Table implements Disposable { private final Skin skin; - private final MaxonSavegame savegame; + private MaxonSavegame savegame; private final Table dataTable, controlTable; private final TextureAtlas atlas; private final MaxonGame game; + private final Stage stage; - public SavegameWidget(final MaxonGame game, Skin skin, final MaxonSavegame savegame) { + public SavegameWidget(final MaxonGame game, Skin skin, final Stage stage, final MaxonSavegame savegame) { super(); this.game = game; + this.stage = stage; this.atlas = game.assetManager.get("MainSpritesheet.atlas", TextureAtlas.class); this.skin = skin; @@ -82,14 +87,12 @@ public class SavegameWidget extends Table implements Disposable { public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); - MaxonSavegame sav = new MaxonSavegame(); - sav.name = field.getText(); - - try { - game.setScreen(new GameScreen(game, sav, 0)); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); + if (savegame == null) { + savegame = new MaxonSavegame(); + savegame.name = field.getText(); } + + moveToNextScreen(); } }); } @@ -148,12 +151,7 @@ public class SavegameWidget extends Table implements Disposable { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); - - try { - game.setScreen(new GameScreen(game, savegame, 0)); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } + moveToNextScreen(); } }); @@ -172,6 +170,31 @@ public class SavegameWidget extends Table implements Disposable { }); } + private void moveToNextScreen() { + Image bg = new Image(skin, "white_tile"); + bg.setFillParent(true); + + bg.addAction( + Actions.sequence( + Actions.alpha(0.0f), + Actions.alpha(1.0f, 1.5f), + Actions.delay(0.5f), + new Action() { + @Override + public boolean act(float delta) { + try { + game.setScreen(new GameScreen(game, savegame, 0)); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + return true; + } + } + ) + ); + stage.addActor(bg); + } + @Override public void dispose() { atlas.dispose(); |
