Corona sdk composer

Corona SDK Разбираемся с Composer API

22.07.2015

Композитор является официальным менеджером сцены в Corona SDK. Что это? Рассмотрим на примере приложения «Часы». В этом приложении TabBar в нижней части, позволяет переключаться между часами, таймером, Сикундомером. Каждая из этих утилит можно считать отдельной сценой в плане Composer. По существу, composer позволяет писать код для сцен в виде отдельных .lua файлов, по одному для каждой сцены. Затем она дает вам API  для переключения сцен при необходимости.

Для быстрого старта можно использовать шаблон который представлен ниже. Но имейте в виду этот шаблон включает функции для всех возможнх событий.

В нашем приложении Часы мы будем использовать четыре отдельных .lua файла это:

tabbar

Будьте внимательны старайтесь избегать имен файлов встроенных в библиотеки Corona SDK. Например, вы не должны называть сцены timer.lua или physics.lua . В приведенном выше примере, в нашем main.lua будет использоваться  widget.newTabBar () и будет содержать код для вызова различных функций composer.gotoScene () которая будет нас перенаправлять на ту сцену которую мы выберем в нижнем тап-баре. Если вы хотите, увидеть в действии как работает composer можете ознакомится с этим примером с GitHub это образец бизнес приложения с возможностью публикации через rss канал, фотогаллереей и бидео которая использует стрим канала с youtube, также ест карты.

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

game

 

Для запуска composer нам понадобится всего две строчки в main.lua

Последняя строчка кода указывает что стартовым экраном является menu.lua

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

Для того чтобы создать сцену нам необходимо сделать запрос у composer на построение, выводится она такой строкой:

Сама сцена состоит из трех частей:

1. Сам объект, который описывает состояние сцены и информацию о нем.

2. Визуальная составляющая сцены, аудио.

3. И конец сцены return scene, что является обязательным.

 

Существует четыре события при помощи которых composer управляет структурой сцены это:

scene:create() — Композитор позволяет вам покаать сцену, но ее еще не существует.

scene:show() — Это событие срабатывает два раза, первый раз когда сцена готовится (will) к показу и второй когда ота выводится на экран (did).

scene:hide() —  Так же как scene:show() выводится два раза.

scene:destroy() — Это событие полностью разрушает сцену.

 

В файле сцены событие содержит уникальную функцию. Далее приведен примет работы этих функций.

Тепперь расмотрим каждое событиее более подробно.

scene:create()

В этой части мы распологаем всу графическую состовляющую контента так же аудио.

 

scene:show()

Как мы уже знаем состоит из двух фаз will и did, если мы наш код размещаем в области will то функция create не будет выполнятся снова, а если мы размести наш код в области did то это означает что это событие свершилось и здесь можно размещать такие элементы как таймер или остановить физику.

 

scene:hide()

В этой части размещаются элементы которые мы хоти м остановить или скрыть. Работает полностью в тандеме с функцией show.

 

scene:destroy()

Применяется для полного уничтожения сцены всвязи с контролем памяти. Желательно утилизировать все объекты и аудио.

В других статьях мы продолжим разбираться с composer api. Спасибо за внимание

 

  • Средь нулей единица

    норм урок.