Corona Урок 2 «Обработка касаний».

Поделиться.

Всем доброго времени суток, сегодня наш урок посвящен обработки касаний в CORONA.

Создайте новый проект и откройте его в редакторе кода.

Начнем, создадим переменную X, которая будет хранить в себе ширину экрана, для этого введите в редакторе следующий код:

X = display.contentWidth

Так же, создадим переменную Y, которая будет хранить в себе высоту экрана, для этого введите в редакторе следующий код:

Y = display.contentHeight

Скачайте картинку, которую видите ниже

СКАЧАТЬ КАРТИНКУ

Откройте окно Corona Simulator и перейдите по пути File>Show Project File, перед вами откроется папка с проектом, скопируйте в нее скаченное изображение.

Отрисуем нашу картинку, для этого введите следующий код:

local Ground = display.newImageRect("GroundCorona.jpg", X, Y )
Ground.x = X/2
Ground.y = Y/2

Мы создали локальную переменную с названием Ground, в ней хранится наша отрисованная картинка и задали ей координаты.

Далее, Скачайте картинку, которую видите ниже и поместите ее в папку с проектом.

Отрисуем ее, для этого введите в редакторе следующий код:

local ButtonOne = display.newImageRect("ButtonOne.png", X/3, X/3)
ButtonOne.x = X/2
ButtonOne.y = Y-Y/5

Теперь самое интересное, заставил нашу кнопку работать.

Создадим функцию:

function FunctionName(Argument)
--Здесь будет код который выполняет функция
end

Мы создали функцию с названием FunctionName, в круглых скобках вводим название аргумента, в нашем случае это Argument, чтоб она работала, создадим обработчик событий

ButtonOne:addEventListener("touch", FunctionName) 

Рассмотрим эту строчку по внимательней, Мы взяли переменную ButtonOne и добавили к ней событие "touch" ,при этом мы обращаемся и передаем информацию в функцию FunctionName.

Событие touch имеет 3 фазы:

  • "began" - указывает, что на экране началось касание.
  • "moved" - указывает на движение касания.
  • "ended" - указывает, что касание закончилось.

Текущая фаза хранится в аргументе функции, проверим текущую фазу и изменим прозрачность нашей кнопки, для этого вернемся к нашей функции и заменим строчку "--Здесь будет код который выполняет функция" на следующий код: 

if(Argument.phase == "began")then
ButtonOne.alpha = 0.7
elseif(Argument.phase == "ended")then
ButtonOne.alpha = 1
end

Этот кусок кода означает следующее, если фаза равна "began", тогда устанавливаем прозрачность ButtonOne на уровень 0.7, иначе если фаза равна  "ended", устанавливаем прозрачность ButtonOne на 1.

На этом все, Удачи 🙂


Поделиться.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *