Геометрические фигуры

Corona SDK предлагает несколько типовых геометрических фигур, которые можно использовать в своём приложении для дизайна. Это круг, прямоугольник, линия, прямоугольник со скруглёнными уголками и полигон. С помощью последнего можно делать треугольник, звезду, ромб, трапецию и тому подобное. Нам понадобится только круг и прямоугольник со скруглёнными уголками. Для начала определим переменную, в которой будет храниться ширина нашего контента. Общую доступную ширину экрана можно получить через переменную display.contentWidth, но если её задействовать, то прямоугольники станут плотно прижиматься к боковым краям экрана. Некрасиво. Так что установим небольшие поля по 10 пикселей слева и справа.

w = display.contentWidth - 20;

Круг

Для круга нужно задать координаты его центра и радиус. Всё делается через метод display.newCircle. По оси x мы для всех фигур будем использовать display.contentCenterX, для y — 74 пикселя от верхнего края. Радиус круга установим 60 пикселей.

display.newCircle(display.contentCenterX, 74, 60);

Цвет заливки задаётся методом setFillColor двумя способами. В первом случае мы через двоеточие добавляем setFillColor к нашему объекту.

display.newCircle(display.contentCenterX, 74, 60):setFillColor(244/255);

Во втором случае вначале определяем переменную, которая будет ассоциироваться с объектом, и добавляем setFillColor уже к ней.

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

Лишняя переменная нужна, если дальше нам понадобится обращаться к объекту, получать или менять его свойства.

Прямоугольник со скруглёнными краями

Для создания такого прямоугольника нужно определить пять параметров в следующем порядке:

  • координата x центра прямоугольника;
  • координата y центра прямоугольника;
  • ширина прямоугольника;
  • высота прямоугольника;
  • радиус скругления уголков.

Само создание фигуры делается методом display.newRoundedRect как показано ниже.

display.newRoundedRect(display.contentCenterX, 110, w, 100, 10):setFillColor(244/255);

Прямоугольник располагается по центру горизонтальной оси экрана, на расстоянии 110 пикселей от верхнего края. Ширина равна нашей переменной w определённой ранее, а высота — 100 пикселей. Радиус скругления задан 10 пикселей. Заодно установим цвет заливки такой же как у круга. Вот наш итоговый код main.lua.

-- прячем строку состояния
display.setStatusBar(display.HiddenStatusBar);
-- фон приложения
display.setDefault("background", 37/255, 39/255, 46/255);
-- цвет текста по умолчанию
display.setDefault("fillColor", 0, 0.6);
-- ширина контента
w = display.contentWidth - 20;
-- добавляем круг
display.newCircle(display.contentCenterX, 74, 60):setFillColor(244/255);
-- прямоугольник со скруглёнными уголками
display.newRoundedRect(display.contentCenterX, 110, w, 100, 10):setFillColor(244/255);

В эмуляторе получается следующая картинка.

Геометрические фигуры в нашем приложении

Геометрические фигуры в нашем приложении

Цвет круга и прямоугольника совпадают, они частично накладываются друг на друга, получая в результате нужную нам фигуру.

См. также

Документация по созданию круга

http://docs.coronalabs.com/api/library/display/newCircle.html

Документация по созданию прямоугольника со скруглёнными уголками

http://docs.coronalabs.com/api/library/display/newRoundedRect.html

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