Initial Commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Zenject;
|
||||
|
||||
namespace FlappyBird.Core
|
||||
{
|
||||
public class GameManager : IGameManager, IInitializable
|
||||
{
|
||||
public GameState CurrentState { get; private set; } = GameState.Menu;
|
||||
|
||||
public event Action<GameState> OnGameStateChanged;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
CurrentState = GameState.Menu;
|
||||
Debug.Log($"Gameplay state: {CurrentState}");
|
||||
}
|
||||
|
||||
public void StartGame()
|
||||
{
|
||||
if (CurrentState != GameState.Menu)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TransitionTo(GameState.Playing);
|
||||
}
|
||||
|
||||
public void GameOver()
|
||||
{
|
||||
if (CurrentState != GameState.Playing)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TransitionTo(GameState.GameOver);
|
||||
}
|
||||
|
||||
public void ReturnToMenu()
|
||||
{
|
||||
if (CurrentState == GameState.Menu)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TransitionTo(GameState.Menu);
|
||||
}
|
||||
|
||||
private void TransitionTo(GameState state)
|
||||
{
|
||||
if (CurrentState == state)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CurrentState = state;
|
||||
Debug.Log($"Gameplay state: {CurrentState}");
|
||||
OnGameStateChanged?.Invoke(CurrentState);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user