Scene transitions initial implementation

This commit is contained in:
2023-09-11 00:07:40 -07:00
parent 81a56986ac
commit 51307c0d40
48 changed files with 1755 additions and 130 deletions

View File

@@ -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;
}
}