Статьи

Corona SDK: разработка развлекательного приложения Magic Ball

В этом уроке мы будем использовать API-интерфейсы Corona и язык программирования Lua для создания развлекательного приложения Magic Ball.


Corona SDK Magic Ball - Рисунок 1

Используя событие Shake, встроенное в API Corona, мы создадим приложение, которое генерирует случайный результат из предопределенных слов. Вы также научитесь создавать простые анимации с использованием методов перехода .


Corona SDK Magic Ball - рисунок 2

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

Платформа iOS имеет следующие характеристики:

  • iPad: 1024×768 пикселей, 132 т / д
  • iPhone / iPod Touch: 320×480 пикселей, 163 т / д
  • iPhone 4: 960×640 пикселей, 326 точек на дюйм

Поскольку Android немного отличается, будучи открытой платформой, вы можете столкнуться с различными разрешениями экрана:

  • Nexus One: 480×800 пикселей, 254 точек на дюйм
  • Дроид: 854×480 пикселей, 265 пикселей на дюйм
  • HTC Legend: 320×480 пикселей, 180 пикселей на дюйм

В этом уроке мы будем использовать iPhone / iPod touch в качестве платформы.


Corona SDK Magic Ball - Рисунок 3

Это графический интерфейс, который мы будем использовать, он включает в себя треугольник, который будет служить октоэдром, найденным в Magic Balls.


Corona SDK Magic Ball - рисунок 4

В зависимости от выбранного устройства вам нужно будет экспортировать графику в рекомендуемом PPI, вы можете сделать это в вашем любимом графическом редакторе.

Я использовал функцию « Настроить размер …» в приложении «Просмотр» в Mac OS X.

Не забудьте дать изображениям описательное имя и сохранить их в папке вашего проекта.


Corona SDK Magic Ball - Рисунок 5

Время написать наше приложение!

Откройте предпочитаемый редактор Lua (любой текстовый редактор будет работать, но у вас не будет подсветки синтаксиса) и подготовьтесь к написанию своего замечательного приложения.


Сначала мы скрываем строку состояния, это строка в верхней части экрана, которая показывает время, сигнал и другие индикаторы.

1
display.setStatusBar(display.HiddenStatusBar)

Теперь мы добавляем фон приложения.

1
local background = display.newImage(«background.png»)

Эта строка создает локальную переменную background и использует API отображения для добавления указанного изображения на сцену. По умолчанию изображение добавляется в 0,0 с использованием верхнего левого угла в качестве контрольной точки.


Мы повторяем процесс с изображением октоэдра, помещая его в центр сцены.

1
2
3
local octohedron = display.newImage(«octohedron.png», 110, 186)
 
octohedron.isVisible = false

Octothedron будет невидимым по умолчанию и появится при первом встряхивании устройства.


Следующий код создает центр TextField, который будет отображать случайное предложение при отправке события встряхивания.

1
2
3
4
5
6
local textfield = display.newText(«», 0, 0, native.systemFontBold, 14) — Create the TextField
 
textfield:setReferencePoint(display.CenterReferencePoint) — Change reference point to center for easy positioning
textfield.x = display.contentWidth * 0.5 — Center TextField
textfield.y = display.contentHeight * 0.5
textfield:setTextColor(255, 255, 255) — Set text color to white

Следующие переменные будут использоваться для обработки события Shake.

  • Shake : таблица, которая будет использоваться в качестве прослушивателя функции для события Shake.
  • Опции : Хранит слова, которые могут быть показаны волшебным шаром.
1
local shake = {}<br />local options = {«Probably Not», «No.», «Nope», «Maybe», «Yes», «Probably», «It’s Done», «Of Course»}

Эта функция прослушивает событие встряхивания и выявляет октоэдр и текст, если это правда.

1
function shake:accelerometer(e)<br /> if(e.isShake == true) then<br /> octohedron.isVisible = true<br /> transition.from(octohedron, {alpha = 0}) — Show octohedron, animates alpha from 0 to 1<br /> textfield.text = options[math.random(1, 8)] — Selects a random sentence from the options variable<br /> transition.from(textfield, {alpha = 0}) — fades in the text<br /> end<br />end

События Accelerometer основаны на времени выполнения, поэтому мы используем ключевое слово Runtime для добавления прослушивателя.

1
Runtime:addEventListener(«accelerometer», shake)

Corona SDK Magic Ball - Рисунок 6

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

Используя графику, созданную до того, как вы сможете создать красивый и красивый значок, размер значков для iPhone составляет 57x57px, но в магазине iTunes используется 512x512px, поэтому лучше создать значок в этом размере.

Для этого не нужно иметь закругленные углы или прозрачные блики, iTunes и iPhone сделают это за вас.


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

Спасибо за прочтение!