В этом уроке из двух частей мы будем использовать Corona SDK для создания привлекательного музыкального проигрывателя. Читай дальше!
Шаг 1: Обзор приложения

Используя готовую графику, мы создадим развлекательную игру с использованием Lua и Corona SDK.
Пользователь сможет воспроизводить и контролировать заранее определенные аудиофайлы, а также просматривать информацию о них.
Шаг 2: Целевое устройство
Первое, что нам нужно сделать, это выбрать платформу, в которой мы хотим запустить наше приложение, таким образом, мы сможем выбрать размер для изображений, которые мы будем использовать.
Платформа iOS имеет следующие характеристики:
- iPad: 1024×768 пикселей, 132 т / д
- iPhone / iPod Touch: 320×480 пикселей, 163 т / д
- iPhone 4: 960×640 пикселей, 326 точек на дюйм
Поскольку Android является открытой платформой, существует множество различных устройств и разрешений. Вот некоторые из наиболее распространенных характеристик экрана:
- Google Nexus One: 480×800 пикселей, 254 точек на дюйм
- Motorola Droid X: 854×480 пикселей, 228 пикселей на дюйм
- HTC Evo: 480×800 пикселей, 217 пикселей на дюйм
В этом уроке мы сконцентрируемся на платформе iOS с графическим дизайном, специально разработанной для распространения на iPhone / iPod touch, но представленный здесь код должен также применяться к разработке Android с Corona SDK.
Шаг 3: Интерфейс
Будет отображен темный, красивый интерфейс, включающий несколько фигур, кнопок, растровых изображений и многое другое.
Графические ресурсы интерфейса, необходимые для этого урока, можно найти в прилагаемой загрузке.
Шаг 4: Экспорт графики
В зависимости от выбранного устройства, вам может понадобиться экспортировать графику в рекомендованном PPI, вы можете сделать это в вашем любимом графическом редакторе.
Я использовал функцию « Настроить размер …» в приложении «Просмотр» в Mac OS X.
Не забудьте дать изображениям описательное имя и сохранить их в папке вашего проекта.
Шаг 5: Песни
Выберите несколько песен из вашей музыкальной библиотеки и поместите их в папку вашего проекта. Мы узнаем, как играть в них в следующих шагах.
Шаг 6: настройка приложения
Внешний файл будет использоваться для того, чтобы приложение работало на всех устройствах,
файл config.lua . Этот файл показывает исходный размер экрана и метод, используемый для масштабирования этого содержимого в случае, если приложение запускается с другим разрешением экрана.
|
1
2
3
4
5
6
7
8
9
|
application =
{
content =
{
width = 320,
height = 480,
scale = «letterbox»
},
}
|
Шаг 7: Main.lua
Давайте напишем заявку!
Откройте предпочитаемый вами редактор Lua (любой текстовый редактор будет работать, но у вас не будет подсветки синтаксиса) и приготовьтесь написать свое классное приложение. Не забудьте сохранить файл как main.lua в папке вашего проекта.
Шаг 8: Структура кода
Мы будем структурировать наш код, как если бы это был класс. Если вы знаете ActionScript или Java, вы должны найти структуру знакомой.
|
01
02
03
04
05
06
07
08
09
10
11
|
Necesary Classes
Variables and Constants
Declare Functions
contructor (Main function)
class methods (other functions)
call Main function
|
Шаг 9: Скрыть строку состояния
|
1
|
display.setStatusBar(display.HiddenStatusBar)
|
Этот код скрывает строку состояния. Строка состояния — это строка в верхней части экрана устройства, которая показывает время, сигнал и другие индикаторы.
Шаг 10: Фон
Простое темно-коричневое изображение добавляется в качестве фона для интерфейса приложения.
|
1
2
3
4
|
— Graphics
— [Background]
local bg
|
Шаг 11: Информационная панель
Информационная панель будет содержать обложку альбома, название песни и исполнителя. Он будет размещен в центре сцены.
|
1
2
3
4
5
|
— [Info Bar]
local infoBar
local progressBar
local progress
|
Шаг 12: обложка альбома
Для хранения изображения обложки альбома создается переменная, эта картинка должна находиться в папке проекта. Подробнее об этом на последнем шаге.
|
1
2
3
4
|
— [Image Marker]
local imageMarker
local cdCover
|
Шаг 13: Информационный текст
Название песни и исполнитель хранятся в следующих переменных:
|
1
2
3
4
5
|
— [Info Bar Text]
local titleText
local byText
local artistText
|
Шаг 14: Панель кнопок
Эта панель отображает кнопки управления, а также индикатор выполнения и продолжительность песни.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
— [Button Bar Bg]
local buttonBar
— [Buttons]
local playBtn
local stopBtn
local prevBtn
local nextBtn
— [Button Bar Text]
local current
local total
|
Шаг 15: Данные песен
XML, вероятно, будет лучшим способом обработки информации о песне, но, к сожалению, на данный момент в Corona нет собственного XML API. Хотя вы все еще можете использовать некоторые библиотеки Lua, такие как LuaXML, будет быстрее создать таблицу для короткого контента, как показано в следующих строках:
|
1
2
3
4
5
6
7
8
9
|
— URL, Name, Artist, Art
local song1Info = {‘song1.m4a’, ‘Here Without You’, ‘3 Doors Down’, ‘s1.png’}
local song2Info = {‘song2.m4a’, ‘Kriptonite’, ‘3 Doors Down’, ‘s2.png’}
local songsInfo = {song1Info, song2Info}
local song1 = audio.loadStream(song1Info[1])
local song2 = audio.loadStream(song2Info[1])
local songs = {song1, song2}
|
Как видно из приведенного выше кода, таблицы используются для хранения информации о песнях, которая впоследствии используется методом audio.loadStream() для создания объекта потоковой передачи звука.
Шаг 16: Проверка кода
Вот полный код, написанный в этом руководстве, вместе с комментариями, которые помогут вам идентифицировать каждую часть:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
— Audio Player
— Developed by Carlos Yanez
— Hide Status Bar
display.setStatusBar(display.HiddenStatusBar)
— Graphics
— [Background]
local bg
— [Info Bar]
local infoBar
local progressBar
local progress
— [Image Marker]
local imageMarker
local cdCover
— [Info Bar Text]
local titleText
local byText
local artistText
— [Button Bar Bg]
local buttonBar
— [Buttons]
local playBtn
local stopBtn
local prevBtn
local nextBtn
— [Button Bar Text]
local current
local total
— [Songs]
— URL, Name, Artist, Art
local song1Info = {‘song1.m4a’, ‘Here Without You’, ‘3 Doors Down’, ‘s1.png’}
local song2Info = {‘song2.m4a’, ‘Kriptonite’, ‘3 Doors Down’, ‘s2.png’}
local songsInfo = {song1Info, song2Info}
local song1 = audio.loadStream(song1Info[1])
local song2 = audio.loadStream(song2Info[1])
local songs = {song1, song2}
|
В следующий раз…
В этой части серии вы узнали интерфейс и базовые настройки приложения. Оставайтесь с нами во второй части, где мы рассмотрим логику приложения, поведение кнопок и многое другое. Увидимся в следующий раз!








