Начало работы с Lua и Corona SDK...
В этом уроке вы познакомитесь с основами языка программирования Lua и я помогу вам начать писать приложения для iOS и Android. Взволнованны? Давайте сразу к делу.
Вступление
В этом уроке мы рассмотрим Corona SDK и язык программирования Lua. Несмотря на то, что с Lua не сложно познакомиться, рекомендуется иметь некоторый опыт работы с другими языками, такими как JavaScript, PHP, Java или Ruby. Мы рассмотрим основные принципы работы Corona SDK и Lua, чтобы познакомить вас с разработкой на платформе Corona. Вы увидите, что для запуска и работы потребуется очень мало усилий и кода. Я готов, если вы готовы.
1. Представляем Lua и Corona SDK
В прошлом, мобильные разработчики попадали в затруднительное положение. Должны ли они разрабатывать приложения для iOS или Android? Большинство разработчиков iOS используют Objective-C, в то время как разработчики Android используют Java. К счастью, у нас есть Corona SDK и язык программирования Lua, который позволяет вести кросс-платформенную мобильную разработку. Проще говоря, это означает, что вы можете разработать приложение один раз и скомпилировать его для iOS, Android, Kindle и Nook.
Язык программирования который мы используем при разработке с Corona SDK называется Lua, что означает луна на португальском языке. Одно из основных преимуществ Lua, особенно в сочетании с Corona SDK - это то, что Lua является кросс-платформенным, поскольку язык написан на языке C. Lua не сложно изучить, как вы узнаете в этом уроке. Lua был создан в 1993 году небольшой группой людей в Папском католическом университете в Рио-де-Жанейро, Бразилия. Lua - это программное обеспечение с открытым исходным кодом, поэтому вы можете свободно использовать его в своих проектах. Распространяется по лицензии MIT.
Corona SDK разрабатывается и поддерживается Corona Labs и является коммерческой платформой. На выбор есть несколько тарифных планов. Существует бесплатный стартовый план и платные тарифы, начиная с $19 в месяц.
Однако для этого урока мы будем использовать стартовый план. Несмотря на то, что вы можете разрабатывать приложения Corona на нескольких платформах, в этом уроке я покажу вам как создавать приложения с использованием Windows и запускать их на платформе Android.
2. Настройка Lua и Corona SDK
Вы готовы начать кросс-платформенную мобильную разработку? Посетите портал разработчиков Corona SDK, создайте учетную запись и загрузите пакет Corona SDK. Как я уже упоминал, в этом уроке я буду использовать Windows, но вы также можете работать в OS X. После установки Corona SDK откройте меню Пуск и выберите Corona SDK> Corona Simulator. Вы должны увидеть два окна, как показано ниже.


3. Текстовые редакторы
Теперь, когда у нас есть симулятор Corona, мы должны установить текстовый редактор для написания и редактирования Lua. Я рекомендую Sublime Text 2, который можно скачать бесплатно. Это отличный и популярный текстовый редактор, который поддерживает подсветку синтаксиса и кучу других полезных функций. Это особенно полезно, если вы пишете большие и сложные приложения. Он поддерживает Lua вместе с 43 другими языками программирования. Говорил ли я вам, что Sublime Text доступен в Windows, OS X, а также Linux? Вы не ошибетесь выбрав Sublime Text 2.

4. Создание приложения "Hello World"
Вернитесь к симулятору Corona, нажмите New Project и выберите папку для хранения файлов проекта. Выберите Blank в качестве шаблона проекта, Phone Preset для Upright Screen Size и Upright в качестве Default Orientation. Нажмите кнопку ОК, чтобы завершить настройку проекта и перейти к каталогу, в котором был создан новый проект. Вы должны найти три файла, build.settings, config.lua и main.lua. Единственный файл, который нам нужно будет отредактировать - это Main.lua. Откройте этот файл с помощью редактора и замените содержимое файла на приведенный ниже фрагмент кода.
print("Hello World!");
Сохраните изменения, нажав сочетание клавиш Ctrl + S
и откройте окно симулятора Corona. Подождите минутку. Ничего не произошло. Это абсолютно нормально. Нужно проверить другое окно, которое выглядит как командная строка. Оно должно отображать Hello World! как показано ниже.

Причина, по которой текст отображался только в терминале Corona, а не в симуляторе Corona, заключается в том, что команда print
используется только для языка программирования Lua. Ее нельзя использовать для отображения слов на экране симулятора Corona или физического устройства. Тем не менее, эта основная команда print
по-прежнему будет полезна при разработке приложения, особенно для целей отладки.
5. "Hello World" - Дубль 2
Мы собираемся создать еще одно приложение Hello World! Однако на этот раз мы сделаем так, чтобы оно отображало слова в самом симуляторе Corona Simulator. Удалите содержимое main.lua и замените его фрагментом кода, показанным ниже.
display.newText("Hello World!", 0, 0, native.systemFont, 16);
Возможно, вы заметили, что этот фрагмент немного длиннее предыдущего. Давайте посмотрим, что для нас делает этот фрагмент кода.
-
display
объект о котором мы говорим. -
newText
- это функция, которую мы используем для отображения текста на экране. -
"Hello@ World!"
- это текст, который мы хотим отобразить. -
0, 0
- координатыx
иy
соответственно. -
native.systemFont
- это шрифт, который мы используем для текста, а16
- размер шрифта.
Если вы сохраните изменения и перезапустите симулятор Corona, вы увидите следующее.

6. Переменные и математика
Что, если вы хотите хранить число в переменной для последующего использования? В следующем фрагменте кода показано, как объявляются переменные в Lua.
local num1 = 3 + 3;
-
local
ключевое слово для объявления переменной. -
num1
- имя переменной.
Если мы объединим это с предыдущим фрагментом кода, мы получим следующее.
local num1 = 3 + 3;display.newText(num1, 0, 0, native.systemFont, 32);
Симулятор Corona должен отобразить число 6
, что является результатом сложения 3
плюс 3
. Давайте попробуем другой математический пример. Используя следующий фрагмент кода, симулятор Corona должен отобразить число 18
.
local num1 = 3 + 3;display.newText(num1 * 3, 0, 0, native.systemFont, 32);
Как видно, можно выполнять математические операции с переменной. В приведенном фрагменте кода, мы умножили num1
на 3
, используя * 3
. Я уверен, вы уже поняли, что звездочка - это оператор умножения в Lua.
-
+
оператор сложения -
-
оператор вычитания и отрицательных чисел. -
*
оператор умножения -
/
оператор деления
7. Изображения
Также не сложно отображать изображения. Чтобы отобразить изображение, вам нужно добавить изображение в каталог, где находится main.lua. Можно создать подкаталог, чтобы ресурсы проекта были разделены и организованы. Давайте сделаем это сейчас. Создайте новый каталог в папке проекта и назовите его images. Используйте каталог images для хранения изображений вашего проекта. Изображение, которое я хотел бы использовать для этого урока - это logo1.png, и я разместил его в каталоге images, который мы создали минуту назад.
Как видно из приведенного ниже фрагмента кода, отображать изображение почти также просто, как и отображать текст. Осмелюсь сказать, что это еще проще, так как вам не нужно указывать шрифт.
local photo1 = display.newImage("images/logo1.png", 0, 0);

8. Строка состояния
Если вы внимательно посмотрите на предыдущий снимок экрана, вы заметите, что в верхней части экрана отображается строка состояния с изображением оператора, индикатор батареи и т. д. Вы когда-нибудь замечали, что иногда при открытии приложения, игры в частности, строка состояния автоматически исчезает? Скрыть строку состояния так же просто, как добавить одну строку кода в main.lua. Это просто. Обновите проект и взгляните на результат в симуляторе Corona.
display.setStatusBar(display.HiddenStatusBar);
Полезно знать, что строка состояния может иметь разные стили. Имена стилей говорят сами за себя. Для многих приложений, особенно игр, использование HiddenStatusBar
является наиболее подходящим.
display.setStatusBar(display.DefaultStatusBar);
display.setStatusBar(display.DarkStatusBar);
display.setStatusBar(display.TranslucentStatusBar);

9. Прямоугольники, границы и цвета
Давайте перейдем к фигурам. Первая фигура, которую мы будем отображать, представляет собой прямоугольник. Посмотрим, что нужно для отображения прямоугольника на экране.
local rect1 = display.newRect(10, 20, 150, 50);
-
local rect1
объявляет переменную для прямоугольника. -
display.newRect
создает прямоугольную форму. -
(10, 20, 150, 50)
определение координат x и y, а также ширины и высоты соответственно.
Давайте добавим какой-нибудь цвет прямоугольнику.
rect1:setFillColor(51, 255, 0);
Хммм. Что это значит?
-
rect1
- переменная, объявленная ранее. -
setFillColor
метод, используемый для заполнения прямоугольника цветом. -
(51, 255, 0)
указывает красное(51)
, зеленое(255)
и синее(0)
значение цвета, который мы используем.
Рассмотрим этот пример с границей или штриховкой, как показано в следующем фрагменте кода.
rect1.strokeWidth = 8;rect1:setStrokeColor(80, 200, 130);
-
rect1.strokeWidth = 8
устанавливает свойствоstrokeWidth
прямоугольника равным8
. -
rect1.setStrokeColor(80,
200, 130)
задает свойству прямоугольникаstrokeColor
, цвет, указанный в значениях80
,200
и130
, как мы видели ранее.

10. Комментарии
Комментарии могут показаться банальными и даже устаревшими, но они важны и даже больше, когда вы работаете в команде. Комментарии очень полезны для документирования кода, и это относится как к вам, так и к вашим коллегам. Это повышает удобочитаемость кода для других людей в вашей команде. В Lua комментарии просты в использовании. Взгляните на следующий пример.
--this is a comment
Комментарии не влияют на работу приложения. Они только для разработчика. Следующий фрагмент кода не напечатает "Hello World!" в терминале.
--print("Hello World!")
Вы также можете писать комментарии, охватывающие несколько строк, что полезно, если вам нужно объяснить, как работает очень сложный фрагмент кода или если вы хотите написать введение в приложение или проект.
--[[This is commentspansseveral lines.]]
Заключение
В этом уроке вы изучили основы Lua и Corona SDK. Мы установили и настроили Corona SDK, загрузили и использовали текстовый редактор для редактирования Lua, написали несколько приложений и запустили их в симуляторе Corona. Мы также узнали, как использовать переменные для хранения данных, как отображать изображения на экране, как настраивать строку состояния и рисовать фигуры на экране. И наконец, что немаловажно, мы увидели, как использовать комментарии и почему следует использовать комментарии в коде. Я надеюсь, что этот урок был полезным для вас. Оставайтесь с нами, чтобы узнать больше.
Если вы хотите узнать больше о Corona SDK, я рекомендую посетить веб-сайт разработчика Corona Labs. Он наполнен ресурсами и руководствами для начала работы. Вы также можете изучить примеры приложений, включенных в Corona SDK, которые вы загрузили и установили ранее.
Язык программирования Lua также имеет свой собственный веб-сайт. Он содержит все, что вам нужно знать о языке, включая руководство по началу работы и очень подробный справочник. Если вы решите продолжить разрабатывать c Corona, обязательно посетите веб-сайт Lua.