Статьи

Corona SDK: создание игры с алфавитным супом — последние шаги

Добро пожаловать в финальное руководство из серии игр «Азбука супа»! В этом уроке мы рассмотрим выбор слов и шаги, необходимые для создания окончательного приложения.


Мы будем использовать отличную и полезную функцию для обнаружения столкновений без физики. Вы можете найти оригинальный пример и исходный код на веб-сайте Ansca Code Exchange .

1
2
3
4
5
6
7
8
— by jhocking
function hitTestObjects(obj1, obj2)
        local left = obj1.contentBounds.xMin <= obj2.contentBounds.xMin and obj1.contentBounds.xMax >= obj2.contentBounds.xMin
        local right = obj1.contentBounds.xMin >= obj2.contentBounds.xMin and obj1.contentBounds.xMin <= obj2.contentBounds.xMax
        local up = obj1.contentBounds.yMin <= obj2.contentBounds.yMin and obj1.contentBounds.yMax >= obj2.contentBounds.yMin
        local down = obj1.contentBounds.yMin >= obj2.contentBounds.yMin and obj1.contentBounds.yMin <= obj2.contentBounds.yMax
        return (left or right) and (up or down)
end

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

1
2
3
function detectLetters:touch(e)
    — Code…
end

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

1
2
3
4
5
6
7
8
9
— Get selected letters
 
    local selectedWord = »
     
    for i = 1, tfs.numChildren do
        if(hitTestObjects(lines[lines.numChildren], tfs[i])) then
            selectedWord = selectedWord .. tfs[i].text
        end
    end

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

01
02
03
04
05
06
07
08
09
10
11
12
— Check if word is on list
     
        for j = 0, 5 do
            if(selectedWord == L1[j]) then
                audio.play(bell)
                currentWords.text = currentWords.text .. ‘ ‘ .. selectedWord
                currentWords:setReferencePoint(display.TopLeftReferencePoint)
                currentWords.x = 5
                correct = correct + 1
            end
        end
    end

Когда счетчик достигает того же количества слов в таблице, вызывается предупреждение.

1
2
3
if(correct == #L1) then
    alert()
end

Функция оповещения останавливает игру, удаляет слушателей и отображает сообщение о состоянии игры.

1
2
3
4
5
function alert()
    gameListeners(‘rm’)
     
    alert = display.newImage(‘alert.png’)
end

Чтобы изначально запустить игру, нужно вызвать функцию Main . С помощью приведенного выше кода мы сделаем это здесь:

1
Main()

Файл Default.png — это изображение, которое будет отображаться сразу после запуска приложения, пока iOS загружает основные данные для отображения главного экрана. Добавьте это изображение в исходную папку вашего проекта, оно будет автоматически добавлено компилятором Corona.


Используя графику, созданную ранее, теперь вы можете создать красивый и красивый значок. Размер значка для iPhone без использования сетчатки составляет 57x57px, но для версии с сетчаткой — 114x114px, а для магазина iTunes требуется версия 512x512px. Я предлагаю сначала создать версию 512×512, а затем уменьшить ее для других размеров.

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


Пришло время сделать финальный тест. Откройте Corona Simulator, перейдите в папку вашего проекта и нажмите «Открыть». Если все работает, как ожидалось, вы готовы к последнему шагу!


В симуляторе Corona зайдите в File> Build и выберите ваше целевое устройство. Заполните необходимые данные и нажмите кнопку « Создать» . Подождите несколько секунд, и ваше приложение будет готово для тестирования устройства и / или отправки для распространения!


Поэкспериментируйте с конечным результатом и попробуйте сделать свою собственную версию игры!

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