Статьи

Corona SDK: создайте игру «Ударь а-моль» — заключительные шаги

Добро пожаловать в финальное руководство в нашей серии игр Whack A Mole! В этом руководстве мы рассмотрим анимацию червей, события касания и шаги по созданию окончательного приложения.


Пожалуйста, ознакомьтесь с частью 1 и частью 2 серии, чтобы полностью понять этот учебник.

Таймер вызывается этой функцией. Червь будет показан каждые 1400 миллисекунд.

1
2
3
function startTimer()
    timerSource = timer.performWithDelay(1400, showWorm, 0)
end

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
function showWorm(e)
    if(currentWorms == totalWorms) then
        alert()
    else
        lastWorm.isVisible = false
        local randomHole = math.floor(math.random() * 8) + 1
         
        lastWorm = worms[randomHole]
        lastWorm:setReferencePoint(display.BottomCenterReferencePoint)
        lastWorm.yScale = 0.1
        lastWorm.isVisible = true
         
        Runtime:addEventListener(‘enterFrame’, popOut)
         
        currentWorms = currentWorms + 1
    end
end

Когда выйдет червь, будет отображаться небольшая анимация, это небольшая анимация для свойства yScale .

1
2
3
4
5
6
7
function popOut(e)
    lastWorm.yScale = lastWorm.yScale + 0.2
     
    if(lastWorm.yScale >= 1) then
        Runtime:removeEventListener(‘enterFrame’, popOut)
    end
end

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

1
2
3
4
5
6
function wormHit:tap(e)
    audio.play(hit)
    wormsHit = wormsHit + 1
    score.text = wormsHit .. ‘/’ .. totalWorms
    lastWorm.isVisible = false
end

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

01
02
03
04
05
06
07
08
09
10
11
12
13
function alert()
    timer.cancel(timerSource)
    lastWorm.isVisible = false
     
    local alert = display.newImage(‘alertBg.png’)
    alert:setReferencePoint(display.CenterReferencePoint)
    alert.x = display.contentCenterX
    alert.y = display.contentCenterY
    transition.from(alert, {time = 300, xScale = 0.3, yScale = 0.3})
     
    local score = display.newText(wormsHit .. ‘/’ .. totalWorms, 220, 190, native.systemFontBold, 20)
    score:setTextColor(204, 152, 102)
end

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

1
Main()

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


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

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


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


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


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

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