Exemplo n.º 1
0
    // Функция
    private void DeleteXY(TileScript tile, Vector2[] dirArray)
    {
        List <TileScript> cashFindSprite = new List <TileScript>();   // Тут список совпадений

        // Если текущий тайл не имеет спрайта то закончить
        if (tile.spriteRenderer.sprite == null)
        {
            return;
        }

        //Пускаемлучи по вертикали (в верх потом в низ) и по горизонтали (в лево потом в право)
        for (int i = 0; i < dirArray.Length; i++)
        {
            cashFindSprite.AddRange(FindMatch(tile, dirArray[i]));
        }


        // Если совпадений от 3 до 4
        if (cashFindSprite.Count >= 2 && cashFindSprite.Count < 4)
        {
            // Обрабатываем список
            for (int i = 0; i < cashFindSprite.Count; i++)
            {
                Score.AddCoin();                                // Добавляем 1 очко
                cashFindSprite[i].spriteRenderer.sprite = null; // Убираем изобращение тайла
                Setting.empty.Add(cashFindSprite[i]);           // В список пустых тайлов добавитьб текущий
                if (i == cashFindSprite.Count - 1)              // Если последняя итерация
                {
                    tile.spriteRenderer.sprite = null;          // УБбираем спрайт у главного тайла
                    Score.AddCoin();                            // добавляем очко
                }
            }
        }
        else if (cashFindSprite.Count >= 4)                     // Если юольше 4х совпадений
        {
            for (int i = 0; i < cashFindSprite.Count; i++)      // Обрабатываем список
            {
                cashFindSprite[i].spriteRenderer.sprite = null; // Обнуляем каждый тайл
                Score.AddCoin();                                // Добавляем очки
                Setting.empty.Add(cashFindSprite[i]);           // Добавляем в список тайлов котоыре пустые
            }
            DeleteOneColor(tile);                               // Запускаем функцию удаления тайлов одного цвета
        }
    }