예제 #1
0
    public void HoldCurrentTetrimino()
    {
        if (Attribute.HoldUsed)
        {
            return;
        }
        Attribute.HoldUsed = true;

        TetriminoShape holdingShape = UI.Hold.Instance.HoldingShape;

        UI.Hold.Instance.SetTetrimino(this.CurrentTetrimino);

        if (holdingShape == null)
        {
            UpdateCurrentTetrimino();
        }
        else
        {
            Spawner.Destroy(this.CurrentTetrimino.gameObject);
            this.CurrentTetrimino = holdingShape.CreateTetorimino().GetComponent <Tetrimino>();
            this.CurrentTetrimino.transform.SetParent(this.gameObject.transform);
            this.CurrentTetrimino.MoveToMapPosition(TetriminoSpawnX, TetriminoSpawnY);
            this.CurrentTetrimino.gameObject.SetActive(true);
        }
    }
예제 #2
0
    public GameObject CreateNext()
    {
        if (temporaryList.Count <= this.shapeList.Count)
        {
            temporaryList.AddRange(CreateRandomList());
        }

        TetriminoShape thisTime    = temporaryList[0];
        TetriminoShape newForecast = temporaryList[UI.Next.DisplayingForecastNum];

        temporaryList.RemoveAt(0);
        PushToNextUI(newForecast);

        return(thisTime.CreateTetorimino());
    }
예제 #3
0
        public void UpdateQueue(TetriminoShape newTetriminoShape)
        {
            Tetrimino adding = newTetriminoShape.CreateTetorimino().GetComponent <Tetrimino>();

            adding.transform.position = Vector3.zero;
            adding.transform.Translate(adding.TurnAxis);
            adding.gameObject.SetActive(true);

            this.displayingTetriminos.Add(adding);

            if (displayingTetriminos.Count > DisplayingForecastNum)
            {
                Spawner.Destroy(displayingTetriminos[0].gameObject);
                displayingTetriminos.RemoveAt(0);
            }

            Remap();
        }
예제 #4
0
 private void PushToNextUI(TetriminoShape shape)
 {
     UI.Next.Instance.UpdateQueue(shape);
 }