Пример #1
0
 public void turn(Tetromino.TurnDirection dir, bool withPositionChange = false)
 {
     position.unlockTile();
     position = arena.tile[position.x + (int)dir, position.y];
     if (withPositionChange)
     {
         transform.position = position.transform.position;
     }
     position.lockTile(this);
 }
Пример #2
0
    public bool canTurn(Tetromino.TurnDirection dir)
    {
        if (dir == Tetromino.TurnDirection.LEFT)
        {
            if (position.x <= 0)
            {
                return(false);
            }
            if (!arena.tile[position.x - 1, position.y].empty)
            {
                if (arena.tile[position.x - 1, position.y].tile.transform.parent == transform.parent)
                {
                    return(true);                                                                                  //Check if is locked by the same tetromino
                }
                else
                {
                    return(false);
                }
            }
        }
        else
        {
            if (position.x + 1 >= arena.maxTileX)
            {
                return(false);
            }
            if (!arena.tile[position.x + 1, position.y].empty)
            {
                if (arena.tile[position.x + 1, position.y].tile.transform.parent == transform.parent)
                {
                    return(true);                                                                                  //Check if is locked by the same tetromino
                }
                else
                {
                    return(false);
                }
            }
        }

        return(true);
    }