Простой способ удалить элементы - использовать рекурсивную функцию.Это не единственный способ (или даже хороший), но этого должно быть достаточно для такой игры.В основном что-то вроде этого:
function breakBricks(x:int, y:int, color:int):void {
if(bricks[y][x] != color) return;
bricks[y][x] = 0;
breakBricks(x + 1, y, color);
breakBricks(x, y + 1, color);
breakBricks(x - 1, y, color);
breakBricks(x, y - 1, color);
}
Начните с позиции, на которую нажал пользователь, и цвета этой позиции.Если цвет соответствует, он установит эту запись на 0
, если нет, то оставит элемент в покое.Он рекурсивно делает это со всеми соседними элементами.В этом коде отсутствует проверка границ, которую нужно добавить.
На следующем шаге вы можете перебирать каждый столбец массива снизу вверх, сохраняя ссылку на позицию первого 0
найти элемент и переместить все найденные после него значения не-emtpy в самое низкое положение пустой строки.