Scene transitions initial implementation
This commit is contained in:
@@ -22,16 +22,10 @@ public partial class Main : Node
|
||||
AddChild(gameManager);
|
||||
var gameManagerInstance = (GameManager)gameManager;
|
||||
|
||||
gameManagerInstance.OnHandleCharacterSelectUI(gameManagerInstance.Players.ElementAt(0));
|
||||
if (numberOfPlayers == 2)
|
||||
gameManagerInstance.OnHandleCharacterSelectUI(gameManagerInstance.Players.ElementAt(1));
|
||||
|
||||
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
|
||||
bgmPlayer.ProcessMode = ProcessModeEnum.Always;
|
||||
bgmPlayer.SetBGMFromFilepath("Audio/BGM/LevelTheme.ogg");
|
||||
bgmPlayer.PlayBGM();
|
||||
|
||||
GetTree().Paused = true;
|
||||
}
|
||||
|
||||
public void LoadNextLevel(int currentSceneIndex)
|
||||
@@ -50,6 +44,20 @@ public partial class Main : Node
|
||||
var nextScene = GD.Load<PackedScene>(sceneToAdd.ResourcePath);
|
||||
var newScene = nextScene.Instantiate();
|
||||
GetTree().Root.AddChild(newScene);
|
||||
var animationNode = GetNode<AnimationPlayer>("SceneTransition/AnimationPlayer");
|
||||
animationNode.Play($"Level{Levels.IndexOf(nextScene) + 1}");
|
||||
animationNode.AnimationFinished += EnableCharacterSelect;
|
||||
}
|
||||
|
||||
|
||||
private void EnableCharacterSelect(StringName animationName)
|
||||
{
|
||||
GD.Print("On animation finished: Enable characters");
|
||||
var gameManagerInstance = GetNode<GameManager>("GameManager");
|
||||
foreach (var player in gameManagerInstance.Players)
|
||||
gameManagerInstance.OnHandleCharacterSelectUI(player);
|
||||
GetTree().Paused = true;
|
||||
var animationNode = GetNode<AnimationPlayer>("SceneTransition/AnimationPlayer");
|
||||
animationNode.AnimationFinished -= EnableCharacterSelect;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user