Программирование игровых приложений на Corona SDK: часть 1


Важно
Этот туториал рассчитан на людей, у которых есть опыт программирования на Lua, если нет, то отправляйтесь исправлять ситуацию. Но он отлично подойдет и для тех, кто никогда не программировал на Lua.

Что такое Corona SDK?


Corona SDK — это кроссплатформенный игровой движок, использующий Lua для описания игровой логики.

Позволяет экспортировать приложения под различные платформы, в том числе и мобильные.

Возможность экспорта под такие платформы:

  • Windows
  • Mac OS
  • iPhone/iPad
  • Android
  • tvOS

Начнем!


Регистрируемся на официальном сайте, скачиваем Corona SDK, с установкой проблем возникнуть не должно. После установки, запускаем ярлык «Corona Simulator», который должен появиться на рабочем столе.

Откроется менеджер проектов и специальная консоль.


Нажимаем «New project». Вводим название проекта, остальное оставляем, как есть, нажимаем на «OK».


Должно открыться такое окно.



И папка проекта в проводнике.


Приступаем к программированию


Я использую «Notepad++» для редактирования кода, но подойдет любой, другой текстовый редактор.

Открываем файл «main.lua». После открытия, вы увидите, что-то вроде этого.


Я буду использовать эти изображения, которые я нарисовал в программе «Graphics Gale». Нужно закинуть их в корень папки проекта.

Игрок.


Трава.



Для начала, подключим физику, загрузим изображения и назначим координаты для игрока.

local physics = require("physics")

physics.start() -- запускаем физику.

player = display.newImage("player.png") -- загружаем изображение.
player.x = 100 
player.y = 100 -- меняем координаты игрока.

physics.addBody(player,"dynamic") -- включаем физику для игрока, "dynamic" объекты - действуют за законами гравитации.

Нажимаем Ctrl + S, если вы все сделали правильно, игрок начнет падать вниз.


Добавим землю


grass_block={} -- массив блоков
for i=0,5 do
grass_block[i]=display.newImage("grass.png") 
grass_block[i].x=grass_block[i].x+i*64
grass_block[i].y=player.y+100
physics.addBody(grass_block[i],"static") -- "static" объекты - игнорируют гравитацию.
end

Результат:


Заключение


Вот такой вот получился краткий урок. В следующем уроке, я расскажу, как сделать управление игроком, добавлю фон, и расскажу тонкости настроек для мобильных платформ.
Поделиться публикацией

Похожие публикации

Комментарии 12

    0
    Интересно.
    Только стоило упомянуть для тех, кто не знаком, что цена — 79$ в месяц для нормальной версии (SDK, отсутсвие сплешскрина и прочее.)
      0

      Это очень давно поменялось. Сейчас все полностью бесплатно. Кастомизировать сплеш можно платным плагином за $99 в год. Что $8.25 в месяц, при желании.
      При чем "бесплатно" — это без выплат (royalty, как в Unreal) и без ограничений по доходам (как в Юнити). Просто бесплатно.

        0

        А, извините. Вы о Corona Enterprise. Это, немного другой продукт чем Corona SDK. Он необходим что бы самому писать бинарные плагины на нативных языках (C/C++/Java). Что бы писать игры и приложения при помощи Corona Simulator (как в статье) оно совершенно не нужно.

          0
          Бинарные плагины на нативных языках — имеются в виду любые нативные плагины под платформу? Например какая-нибудь кастомная аналитика или рекламный движок?
            0
            Да.
        0
        А какие возможности для свободного применения Corona SDK в приложениях? Я так понимаю он, предназначен для создания 2D игр только средствами движка и при этом без возможности использования подключения внешних модулей и например не получится встроить какой-нибудь модуль рекламы и прочии «плюшки» для free to play?
          0
          У короны довольно обширная библиотека плагинов, есть и аналитики, и реклама и ещё куча всего.
            0
            Рекламу и различные «плюшки» можно подключить(в разумных пределах).
            Для рекламы либо ищите плагин от компании, где Вы будете брать рекламу, либо пишите сами на lua, либо пишите нативно и подключаете с помощью Corona Cards.
            +1
            Какие преимущества по сравнению с тем же Godot?
              0
              Честно говоря, перед всеми Луа ддвижками Moai, как по мне, доминирует. Условиями использования, поддерживаемыми платформами, скоростью/архитектурой. Пробовал разные движки, в итоге для мелких прототипов и визуализации некоторых алгоритмов стал использовать Love2D из-за его простоты, а для чего-то серьезного держу где-то архив с Moai.
                0
                А как насчёт Defold? Пробовали уже?
                Напишите в двух словах чем Moai лучше чем всё остальное, что пробовали
              0
              На хабре уже есть статьи про начало работы в Короне. Хотелось бы например прочитать про систему free-to-pay и желательно с примером кода и комментариями по продаже внутри игрового имущества в Гугле или Амазоне.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое