示例#1
0
    private void NextFigure()
    {
        FigureData newFigureData;

        if (nextFigure == null)
        {
            newFigureData = figureCreator.GenerateFigure();
        }
        else
        {
            // take figure data from the next figure
            FigureDataComponent figureDataStorage = nextFigure.GetComponent <FigureDataComponent>();
            newFigureData = figureDataStorage.Data;
        }

        currentFigure = figurePusher.Push(newFigureData); // returns null if can't push figure

        if (currentFigure)
        {
            FigurePolygon polygon = currentFigure.GetComponent <FigurePolygon>();
            polygon.AddListener(this);
        }
        else
        {
            // can't push figure, so the game is over
            GameOver();
        }

        if (nextFigure)
        {
            Destroy(nextFigure.gameObject); // remove previous figure from next figure area
            nextFigure = null;
        }

        // generate next figure for displaying
        FigureData nextFigureData = figureCreator.GenerateFigure();

        nextFigure = nextFigurePusher.Push(nextFigureData);
    }