mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Merge pull request #506 from kevlahnota/master
update transition screen
This commit is contained in:
@@ -391,11 +391,17 @@ public class Forge implements ApplicationListener {
|
|||||||
FThreads.invokeInEdtLater(new Runnable() {
|
FThreads.invokeInEdtLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
//selection
|
//selection transition
|
||||||
splashScreen.setShowModeSelector(true);
|
setTransitionScreen(new TransitionScreen(new Runnable() {
|
||||||
//start background music
|
@Override
|
||||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS);
|
public void run() {
|
||||||
safeToClose = true;
|
splashScreen.setShowModeSelector(true);
|
||||||
|
//start background music
|
||||||
|
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS);
|
||||||
|
safeToClose = true;
|
||||||
|
clearTransitionScreen();
|
||||||
|
}
|
||||||
|
}, Forge.takeScreenshot(), false, false, true, false));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -747,7 +753,7 @@ public class Forge implements ApplicationListener {
|
|||||||
openHomeDefault();
|
openHomeDefault();
|
||||||
exited = false;
|
exited = false;
|
||||||
}
|
}
|
||||||
}, ScreenUtils.getFrameBufferTexture(), false, false));
|
}, Forge.takeScreenshot(), false, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void switchToAdventure() {
|
public static void switchToAdventure() {
|
||||||
@@ -773,6 +779,10 @@ public class Forge implements ApplicationListener {
|
|||||||
public static void clearSplashScreen() {
|
public static void clearSplashScreen() {
|
||||||
splashScreen = null;
|
splashScreen = null;
|
||||||
}
|
}
|
||||||
|
public static TextureRegion takeScreenshot() {
|
||||||
|
TextureRegion screenShot = ScreenUtils.getFrameBufferTexture();
|
||||||
|
return screenShot;
|
||||||
|
}
|
||||||
|
|
||||||
private static void setCurrentScreen(FScreen screen0) {
|
private static void setCurrentScreen(FScreen screen0) {
|
||||||
String toNewScreen = screen0 != null ? screen0.toString() : "";
|
String toNewScreen = screen0 != null ? screen0.toString() : "";
|
||||||
@@ -989,7 +999,7 @@ public class Forge implements ApplicationListener {
|
|||||||
if (!(currentScene instanceof ForgeScene)) {
|
if (!(currentScene instanceof ForgeScene)) {
|
||||||
if (lastScreenTexture != null)
|
if (lastScreenTexture != null)
|
||||||
lastScreenTexture.getTexture().dispose();
|
lastScreenTexture.getTexture().dispose();
|
||||||
lastScreenTexture = ScreenUtils.getFrameBufferTexture();
|
lastScreenTexture = Forge.takeScreenshot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
|||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.badlogic.gdx.utils.Scaling;
|
import com.badlogic.gdx.utils.Scaling;
|
||||||
import com.badlogic.gdx.utils.ScreenUtils;
|
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.adventure.character.*;
|
import forge.adventure.character.*;
|
||||||
import forge.adventure.data.*;
|
import forge.adventure.data.*;
|
||||||
@@ -678,7 +677,7 @@ public class MapStage extends GameStage {
|
|||||||
if(isInMap && effect != null) duelScene.setDungeonEffect(effect);
|
if(isInMap && effect != null) duelScene.setDungeonEffect(effect);
|
||||||
Forge.switchScene(SceneType.DuelScene.instance);
|
Forge.switchScene(SceneType.DuelScene.instance);
|
||||||
});
|
});
|
||||||
}, ScreenUtils.getFrameBufferTexture(), true, false));
|
}, Forge.takeScreenshot(), true, false));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.badlogic.gdx.Gdx;
|
|||||||
import com.badlogic.gdx.math.Rectangle;
|
import com.badlogic.gdx.math.Rectangle;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
import com.badlogic.gdx.utils.ScreenUtils;
|
|
||||||
import com.badlogic.gdx.utils.viewport.Viewport;
|
import com.badlogic.gdx.utils.viewport.Viewport;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.adventure.character.CharacterSprite;
|
import forge.adventure.character.CharacterSprite;
|
||||||
@@ -95,7 +94,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
|||||||
duelScene.initDuels(player, mob);
|
duelScene.initDuels(player, mob);
|
||||||
Forge.clearTransitionScreen();
|
Forge.clearTransitionScreen();
|
||||||
startPause(0.3f, () -> Forge.switchScene(SceneType.DuelScene.instance));
|
startPause(0.3f, () -> Forge.switchScene(SceneType.DuelScene.instance));
|
||||||
}, ScreenUtils.getFrameBufferTexture(), true, false));
|
}, Forge.takeScreenshot(), true, false));
|
||||||
currentMob = mob;
|
currentMob = mob;
|
||||||
WorldSave.getCurrentSave().autoSave();
|
WorldSave.getCurrentSave().autoSave();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -8,20 +8,26 @@ import forge.animation.ForgeAnimation;
|
|||||||
import forge.assets.FSkin;
|
import forge.assets.FSkin;
|
||||||
import forge.assets.FSkinImage;
|
import forge.assets.FSkinImage;
|
||||||
import forge.assets.FSkinTexture;
|
import forge.assets.FSkinTexture;
|
||||||
|
import forge.sound.SoundSystem;
|
||||||
import forge.toolbox.FContainer;
|
import forge.toolbox.FContainer;
|
||||||
|
|
||||||
public class TransitionScreen extends FContainer {
|
public class TransitionScreen extends FContainer {
|
||||||
private BGAnimation bgAnimation;
|
private BGAnimation bgAnimation;
|
||||||
Runnable runnable;
|
Runnable runnable;
|
||||||
TextureRegion textureRegion;
|
TextureRegion textureRegion;
|
||||||
boolean matchTransition, isloading;
|
boolean matchTransition, isloading, isIntro, isFadeMusic;
|
||||||
|
|
||||||
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) {
|
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading) {
|
||||||
|
this(proc, screen, enterMatch, loading, false, false);
|
||||||
|
}
|
||||||
|
public TransitionScreen(Runnable proc, TextureRegion screen, boolean enterMatch, boolean loading, boolean intro, boolean fadeMusic) {
|
||||||
bgAnimation = new BGAnimation();
|
bgAnimation = new BGAnimation();
|
||||||
runnable = proc;
|
runnable = proc;
|
||||||
textureRegion = screen;
|
textureRegion = screen;
|
||||||
matchTransition = enterMatch;
|
matchTransition = enterMatch;
|
||||||
isloading = loading;
|
isloading = loading;
|
||||||
|
isIntro = intro;
|
||||||
|
isFadeMusic = fadeMusic;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -41,6 +47,14 @@ public class TransitionScreen extends FContainer {
|
|||||||
} else if (percentage > 1) {
|
} else if (percentage > 1) {
|
||||||
percentage = 1;
|
percentage = 1;
|
||||||
}
|
}
|
||||||
|
if (isFadeMusic) {
|
||||||
|
try {
|
||||||
|
//fade out volume
|
||||||
|
SoundSystem.instance.fadeModifier(1-percentage);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
if (isloading) {
|
if (isloading) {
|
||||||
g.fillRect(Color.BLACK, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
g.fillRect(Color.BLACK, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||||
if (FSkinTexture.BG_TEXTURE != null) {
|
if (FSkinTexture.BG_TEXTURE != null) {
|
||||||
@@ -58,6 +72,13 @@ public class TransitionScreen extends FContainer {
|
|||||||
} else if (matchTransition) {
|
} else if (matchTransition) {
|
||||||
if (textureRegion != null)
|
if (textureRegion != null)
|
||||||
g.drawWarpImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), percentage);
|
g.drawWarpImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), percentage);
|
||||||
|
} else if (isIntro) {
|
||||||
|
if (textureRegion != null) {
|
||||||
|
g.drawImage(FSkinTexture.BG_TEXTURE, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||||
|
g.setAlphaComposite(1-percentage);
|
||||||
|
g.drawImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight());
|
||||||
|
g.setAlphaComposite(oldAlpha);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (textureRegion != null)
|
if (textureRegion != null)
|
||||||
g.drawGrayTransitionImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), false, percentage);
|
g.drawGrayTransitionImage(textureRegion, 0, 0, Forge.getScreenWidth(), Forge.getScreenHeight(), false, percentage);
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.badlogic.gdx.utils.ScreenUtils;
|
|
||||||
import forge.adventure.scene.DuelScene;
|
import forge.adventure.scene.DuelScene;
|
||||||
import forge.adventure.scene.SceneType;
|
import forge.adventure.scene.SceneType;
|
||||||
import forge.ai.GameState;
|
import forge.ai.GameState;
|
||||||
@@ -320,7 +319,7 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
Forge.setTransitionScreen(new TransitionScreen(() -> {
|
Forge.setTransitionScreen(new TransitionScreen(() -> {
|
||||||
Forge.clearTransitionScreen();
|
Forge.clearTransitionScreen();
|
||||||
Forge.clearCurrentScreen();
|
Forge.clearCurrentScreen();
|
||||||
}, ScreenUtils.getFrameBufferTexture(), false, false));
|
}, Forge.takeScreenshot(), false, false));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user