public void Initialize()
    {
        grid = gameController.grid;
        glowingBlocksManager = gameController.glowingBlocksManager;
        shapeHolder          = gameController.shapeHolder;
        shapeSaver           = gameController.shapeSaver;

        SpawnShape();
    }
Exemple #2
0
    private void InitiateScripts()
    {
        mainBlockManager = new MainBlockManager(this, spawnCoordinate);
        playerInput      = new PlayerInput(this, spedUpTimeIncrease);
        grid             = new Grid(this, blockPrefab, gridSize, invisibleLayer, new Demonstration_MeshProcessing(outlineMaterial));
        soundManager     = new SoundManager(moveShapeAudio, setBlockAudio, clearLineAudio);

        glowingBlocksManager = new GlowingBlocksManager();
        shapeSaver           = FindObjectOfType <ShapeSaver>();
        shapeHolder          = new ShapeHolder(blueMaterial, orangeMaterial, cyanMaterial, greenMaterial, redMaterial, yellowMaterial, magentaMaterial, glowingMaterial);

        shapeHolder.Initialize();
        grid.Initialize();
        mainBlockManager.Initialize();
    }
Exemple #3
0
        // Start is called before the first frame update
        private void Start()
        {
            _dropInterval = baseDropInterval;

            _gameBoard    = FindObjectOfType <Board>();
            _spawner      = FindObjectOfType <Spawner>();
            _soundManager = FindObjectOfType <SoundManager>();
            _scoreManager = FindObjectOfType <ScoreManager>();
            _ghostShape   = FindObjectOfType <GhostHandler>();
            _shapeHolder  = FindObjectOfType <ShapeHolder>();

            if (_spawner)
            {
                if (_currentlyActiveShape == null)
                {
                    _currentlyActiveShape = _spawner.SpawnShape();
                }
            }
            else
            {
                Debug.LogWarning("There is no spawner!");
            }

            if (!_gameBoard)
            {
                Debug.LogWarning("There is no game board!");
            }

            if (!_soundManager)
            {
                Debug.LogWarning("There is no sound manager!");
            }

            if (!_scoreManager)
            {
                Debug.LogWarning("There is no score manager!");
            }

            if (gameOverPanel)
            {
                gameOverPanel.SetActive(false);
            }

            if (pausePanel)
            {
                pausePanel.SetActive(false);
            }
        }
Exemple #4
0
    public void Spawn()
    {
        if (nextShape == -1)
        {
            nextShape = Random.Range(0, Shapes.Length);
        }

        int i = nextShape;

        //// Random Shape
        //       int i = Random.Range(0, Shapes.Length);
        // Spawn Group at current Position
        shape.SetActive(true);
        shape.GetComponent <TetrisShape>().enabled = true;
        shape.transform.position = StartPosition;
        GameObject temp = GetComponent <ObjectPooler>().GetPooledObject();

        if (temp)
        {
            temp.transform.parent        = shape.transform;
            temp.transform.localPosition = Shapes[i].blockOne;
            temp.SetActive(true);
            childBlocks[0] = temp;
        }
        temp = GetComponent <ObjectPooler>().GetPooledObject();
        if (temp)
        {
            temp.transform.parent        = shape.transform;
            temp.transform.localPosition = Shapes[i].blockTwo;
            temp.SetActive(true);
            childBlocks[1] = temp;
        }
        temp = GetComponent <ObjectPooler>().GetPooledObject();
        if (temp)
        {
            temp.transform.parent        = shape.transform;
            temp.transform.localPosition = Shapes[i].blockThree;
            temp.SetActive(true);
            childBlocks[2] = temp;
        }
        temp = GetComponent <ObjectPooler>().GetPooledObject();
        if (temp)
        {
            temp.transform.parent        = shape.transform;
            temp.transform.localPosition = Shapes[i].blockFour;
            temp.SetActive(true);
            childBlocks[3] = temp;
        }
        pivot.transform.localPosition = Shapes[i].pivot;
//        Debug.Log(Shapes[i].shapeName);
        shape.GetComponent <TetrisShape>().AssignRandomColor();
        Managers.Game.currentShape = shape.GetComponent <TetrisShape>();
        if (Managers.Game.currentShape != null)
        {
            Managers.Game.currentShape.movementController.StopFall();
        }

        // setup next shape
        nextShape = Random.Range(0, Shapes.Length);
        ShapeHolder nextOne = previewShape.GetComponent <ShapeHolder>();

        nextOne.blocks[0].transform.localPosition = Shapes[nextShape].blockOne;

        nextOne.blocks[1].transform.localPosition = Shapes[nextShape].blockTwo;

        nextOne.blocks[2].transform.localPosition = Shapes[nextShape].blockThree;

        nextOne.blocks[3].transform.localPosition = Shapes[nextShape].blockFour;

        if (Managers.Input.m_AmountOfPlayers > 1)
        {
            int nextPlayer = (Managers.Input.m_CurrentPlayer + 1) % Managers.Input.m_AmountOfPlayers;
            nextOne.blocks[0].GetComponent <SpriteRenderer>().color = Managers.Palette.GetColourFromTheme(nextPlayer);
            nextOne.blocks[1].GetComponent <SpriteRenderer>().color = Managers.Palette.GetColourFromTheme(nextPlayer);
            nextOne.blocks[2].GetComponent <SpriteRenderer>().color = Managers.Palette.GetColourFromTheme(nextPlayer);
            nextOne.blocks[3].GetComponent <SpriteRenderer>().color = Managers.Palette.GetColourFromTheme(nextPlayer);
        }


        //GameObject temp =Instantiate(shapeTypes[i]) ;
        //Managers.Game.currentShape = temp.GetComponent<TetrisShape>();
        //temp.transform.parent = Managers.Game.blockHolder;
        Managers.Input.isActive = true;
    }