Группирование объектов

При создании нашего приложения мы начинаем сталкиваться с тем, что объектов на экране становится всё больше и управлять ими по отдельности всё сложнее. Частично эту проблему решает использование групп. Группа — это особый объект, который включает в себя другие объекты, а также другие группы. Группы можно трансформировать, менять их свойства, положение и удалять. Естественно, все действия применяются одновременно ко всем объектам входящим в группу.

Для начала необходимо создать группу через метод display.newGroup и дать ей уникальное имя.

-- создаём группу для ввода веса
local weightGroup = display.newGroup();

Добавлять объекты в существующую группу можно двумя способами. Во-первых, делать это напрямую.

weightGroup:insert(weightMinusButton);

Здесь: weightGroup — имя группы; weightMinusButton — имя объекта, в данном случае кнопки.

Во-вторых, для большинства объектов при их создании можно сразу указать имя группы.

-- создаём круг и добавляем его в группу weightGroup
display.newCircle(weightGroup, display.contentCenterX, 74, 60):setFillColor(244/255);

Удаление группы

При удалении группы удаляются и все объекты в неё входящие. Удаляется группа так.

weightGroup:removeSelf();
-- или
display.remove(weightGroup);
weightGroup = nil;

Хорошей практикой является не только удаление группы, но и обнуление переменных связанных с объектами, это гарантирует освобождение занятой памяти.

Управление группой

Группу и все объекты в неё входящие можно перемещать, изменяя их координаты.

weightGroup.y = 100; -- координата по оси y

Также группы можно масштабировать, поворачивать и сдвигать относительно текущего положения. Останавливаться на этом не будем, если вам интересно, читайте руководство Corona SDK.

См. также

Руководство по программированию групп

http://docs.coronalabs.com/guide/graphics/group.html

Автор: Влад Мержевич
Последнее изменение: 27.06.2022