Beispiel #1
0
    public static void StartGame()
    {
        SoundManager.LoadMusic(@"\Music\vikce - casse-tête.wav");

        // Creating unit manager and game window
        unitManager = new GameFieldManager();
        gameField   = new GameWindow(GameScreenWidth, GameScreenHeight);

        // Reset previous score
        Score = 0;

        // Set hero and bullets
        unitManager.SetHero(new Hero(new UnitCoord(GameScreenWidth / 2, GameScreenHeight - 1)));

        // Set enemies
        unitManager.CreateInitialSnowflakes();

        // Render game window
        Console.Clear();
        gameField.RenderGameBackground();
        unitManager.RenderUnits();
        needToRender          = true;
        Console.CursorVisible = false;

        while (needToRender)
        {
            Level = GetLevelAndGameSpeed(Score, out gameSpeed);

            // Get hero control input
            ControlUnit();

            // Render
            unitManager.RenderUnits();
            gameField.RenderScoreInfo();
            Thread.Sleep(gameSpeed / 2);

            // Move enemies
            unitManager.MoveAllBulletsUp();
            unitManager.MoveAllEnemiesDown();

            // Cycle enemies
            unitManager.MeltSnowflakes();
            unitManager.RemoveBullets();
            unitManager.AddBosses();

            // Render
            unitManager.RenderUnits();
            gameField.RenderScoreInfo();
            Thread.Sleep(gameSpeed / 2);

            IsGameOver();
        }
    }
        public override void OnStart()
        {
            base.OnStart();
            var go = GameObject.FindGameObjectWithTag(tagTileMap);

            if (go == null)
            {
                Debug.LogError($"Not found tilemap with tag {tagTileMap} for {gameObject.name}");
                return;
            }
            tilemap = go.GetComponent <Tilemap>();

            gamefield = Core.Get <GameFieldManager>();
        }
Beispiel #3
0
    private void GameDetailsCallback(LobbyGameDetailsModel model)
    {
        bool isMeJoined = false;
        bool isMeReady  = false;
        bool isAllReady = true;

        if (model == null || model.GameState == GameRoomState.Closed)
        {
            OnBtnLeave();

            return;
        }

        if (model.GameState == GameRoomState.Started)
        {
            Debug.Log("Load game field scene.");

            GameFieldManager.StartGame(gameId, model);

            gameObject.SetActive(false);

            return;
        }

        foreach (Transform child in gamePlayersContent.transform)
        {
            Destroy(child.gameObject);
        }

        txtGameId.text = model.GameState + " game #" + model.GameId.Substring(24);

        isAllReady = model.JoinedPlayers >= 2;

        foreach (var gamePlayer in model.Players)
        {
            var item = GameObject.Instantiate(gamePlayerPrefab, gamePlayersContent.transform);
            item.transform.localScale = Vector3.one;

            item.txtPlayerName.text = gamePlayer.PlayerName;
            item.playerSign.sprite  = item.playerSigns[gamePlayer.Sign];

            item.readyStatusObject.SetActive(gamePlayer.IsReady);
            item.waitingStatusObject.SetActive(!gamePlayer.IsReady);

            if (!isMeJoined &&
                gamePlayer.PlayerId == myPlayerId)
            {
                isMeJoined = true;
            }

            if (!isMeReady &&
                isMeJoined &&
                gamePlayer.PlayerId == myPlayerId &&
                gamePlayer.IsReady)
            {
                isMeReady = true;
            }

            isAllReady = isAllReady && gamePlayer.IsReady;
        }

        btnStart.gameObject.SetActive(model.CreatedBy == myPlayerId);
        btnStart.interactable = isAllReady;
        btnReady.gameObject.SetActive(!isMeReady && isMeJoined);
        btnJoin.gameObject.SetActive(!isMeJoined);
        btnLeave.gameObject.SetActive(isMeJoined);
    }
Beispiel #4
0
 void Start()
 {
     gamefield = Core.Get <GameFieldManager>();
 }