Статьи

Corona SDK: создание приложения, управляемого акселерометром

Corona SDK — это кроссплатформенная инфраструктура, которая позволяет разработчикам создавать приложения для iPhone и Android, используя язык программирования Lua. В этом руководстве мы познакомимся с возможностями Corona SDK для взаимодействия с акселерометром устройства. Мы создадим простое приложение, которое реагирует на события акселерометра.



Акселерометр Рисунок 1

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


Акселерометр Рисунок 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 пикселей на дюйм

В этом уроке мы сосредоточимся на платформе iOS, специально разработанной для распространения на iPhone / iPod touch.


Акселерометр Рисунок 3

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


Акселерометр Рисунок 4

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

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

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


Акселерометр Рисунок 5

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

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


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

1
display.setStatusBar(display.HiddenStatusBar)

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

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

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


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

1
2
3
4
5
local indicator = display.newImage(«indicator.png»)
 
indicator:setReferencePoint(display.CenterReferencePoint)
indicator.x = display.contentWidth * 0.5
indicator.y = display.contentWidth * 0.5 + 100

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

  • acc : Таблица, которая будет использоваться в качестве прослушивателя функции для события акселерометра.
  • centerX : хранит горизонтальное значение центра сцены.
1
2
local acc = {}
local centerX = display.contentWidth * 0.5

Эта функция использует таблицу acc для создания прослушивателя события акселерометра, свойства xGravity (часть события акселерометра), а переменная centerX перемещает индикатор положения в соответствии с вычисленной позицией.

1
2
3
function acc:accelerometer(e)
    indicator.x = centerX + (centerX * e.xGravity)
end

Это заставит наш индикатор балансировать при изменении наклона устройства, свойство xGravity будет обрабатывать боковые перемещения, вы можете использовать свойство yGravity для обработки типов наклона вверх / вниз.


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

1
Runtime:addEventListener(«accelerometer», acc)

Акселерометр Рисунок 6

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

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

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


Из этого урока вы узнаете, как использовать события акселерометра для управления элементами на этапе, есть много способов применить этот код, при этом базовое движение персонажа в игре — один из наиболее заметных вариантов.

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