Example #1
0
 private void OnBrickDestruction(BrickHandler obj)
 {
     if (BricksManager.Instance.remainingBricks.Count <= 0)
     {
         BallsManager.Instance.ResetBalls();
         GameManager.Instance.isGameStarted = false;
         BricksManager.Instance.LoadNextLevel();
     }
 }
    private void GenerateBricks()
    {
        this.remainingBricks    = new List <BrickHandler>();
        int[,] currentLevelData = this.LevelsData[this.CurrentLevel];
        float currentSpawnX = initialBrickSpawnPositionX;
        float currentSpawnY = initialBrickSpawnPositionY;
        float zShift        = 0;

        for (int row = 0; row < this.maxRows; row++)
        {
            for (int col = 0; col < this.maxCols; col++)
            {
                int brickType = currentLevelData[row, col];

                if (brickType > 0)
                {
                    BrickHandler newBrick = Instantiate(brickPrefab, new Vector3(currentSpawnX, currentSpawnY, 0 - zShift), Quaternion.identity) as BrickHandler;
                    newBrick.Init(bricksContainer.transform, this.sprites[brickType - 1], this.BrickColors[brickType], brickType);

                    this.remainingBricks.Add(newBrick);
                    zShift += 0.0001f;
                }

                currentSpawnX += shiftAmount;
                if (col + 1 == this.maxCols)
                {
                    currentSpawnX = initialBrickSpawnPositionX;
                }
            }

            currentSpawnY -= shiftAmount;
        }

        this.initialBricksCount = this.remainingBricks.Count;
        OnLevelLoaded?.Invoke();
    }
Example #3
0
 private void OnBrickDestruction(BrickHandler obj)
 {
     UpdateRemainingBricksText();
     UpdateScoreText(10);
 }