summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/MainSpritesheet.skin1
-rw-r--r--core/src/com/ilotterytea/maxoning/screens/MenuScreen.java2
-rw-r--r--core/src/com/ilotterytea/maxoning/ui/SavegameWidget.java53
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();