Menu
Поиграйте во Flappy bird созданный на Clickteam Fusion 2.5

Птичка прыгает по нажатию ЛКМ

Скачайте файл .apk и протестируйте игру на своем смартфоне.

Игра может притормаживает на сайте.

Flappy Bird на Fusion 2.5 с применением физики

Всем известна эта игра. Вроде, ничего особенного просто птичка прыгает через трубы. Но многие подсаживались и старались поставить свои рекорды. По слухам она принесла своему создателю 50.000 баксов за одну только баннерную рекламу. В App Store и Google Play быстро появилось множество клонов Flappy Bird. Если вам интересно как можно создать Flappy Bird на Fusion 2.5, то добро пожаловать!

Используемые объекты

Движение птички сделаны с помощью физикиPhisics - Engine — настройки движка не менялись .

За все движения птички отвечает физический объект птички с красным глазомflappybird33 — это Physics — Bouncing Ball . Этот объект не видим.

flappybird34
В настройках указана высокая гравитация для того, что бы птичка резко прыгала и быстро опускалась.
За внешний вид птички отвечает обычный Staticflappybird32, который привязан к физической птичке

flappybird35

flappybird36

Как подпрыгивает птичка

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

flappybird47

flappybird72
По клику ЛКМ (либо tap-нажатие на мобильных устройствах) физическая птичка получает линейное ускорение linear velocity с силой 30, в направлении 90 градусов (вверх).

flappybird73

В добавок, птичка ещё получает импульс с силой 20 вверх, что бы придать резкость её прыжку.

flappybird74

 

Примечание. Высота прыжка отличается в Windows и в Android. В Window птичка прыгает чуть выше, чем надо, а в Androin в самый раз. Это зависит от среды выполнения движка Box2D. Я делал настройки под Android.

Направление птички изначально установлено на две точки выше от горизонтального.

flappybird75

 

Птичка должна наклонятся вниз когда падает, но с какого момента это должно происходить? Я определил этот момент как позицию на 15 пикселей ниже, чем начальная точка прыжка.

flappybird24

Точка из которой произошел прыжок

 

Позиция из которой происходит прыжок записывается как текущая координата Y в переменную ПозицияНаклона. Когда птичка падает ниже этой точки она начинает наклонятся вниз.

flappybird26

Чем больше значение Y тем ниже объект

 

Наклон происходит постепенно, проходя каждое направление от верхнего до нижнего. Что бы это событие сработало нужно отметить галочку Automatic Rotations в настройках птички.

flappybird37

Движение Труб

 

flappybird70

Самая первая труба появляется с чуть большим интервалом времени (спустя 2 секунды после начала игры), чем все остальные трубы следующие за ней. flag 0 предотвращает повторное появление первой трубы. За тем включается flag 1, который вызывает цепочку следующих труб.

 

flappybird71

С помощью флагов я управляют последовательностью появления труб. В моей Flappy Bird используется три трубы. Они появляются друг за другом с одинаковым интервалом времени. Каждые 1.45 секунды появляется новая труба и движется со скоростью 15 справа налево, для этого я использовал тип движения Bouncing ball.

flappybird31

Время появления и скорость движения трубы выявлены в ходе долгих экспериментов )))

 

Каждая труба появляется справа за сценой в позиции X=315, а позиция Y определяется с помощью генератора случайных чисел — Random (110, 320), что бы просвет в трубе появлялся на разной высоте.

Я не использовал creat object, а сделал три трубы, потому что при создании каждой новой трубы на Android устройстве игра притормаживала. Копая этот вопрос, я выяснил, что такая проблема была не у меня одного. Мне кажется, что это из-за того, что труба довольно большой объект. В общем, от creat object пришлось отказаться и создать логику с тремя трубами.

Начисление очков

Очки должны начисляться в тот момент когда птичка пролетает трубу.

Довольно интересный момент — событие столкновения для обычных объектов срабатывает, только когда одна «картинка» сталкивается с другой, но столкновение физических объектов срабатывает даже когда физический объект пересекает прозрачную часть другого объекта!
flappybird39
Из этого следует логика — когда физическая птичка сталкивается с трубой, то присваиваем единицу к переменной трубы ПролетелТрубу. За тем. если птичка перелетает дальше координаты X этой трубы (середины трубы), то прибавляем одно очко и  ПролетелТруб снова обнуляется.

flappybird38

Трубы добавлены в группу

flappybird40

Если не использовать ПролетелТрубу, то очки будут прибавляться когда птичка просто врежется в трубу

Когда птичка сталкивается с трубой или полом

flappybird41

Если птичка сталкивается с трубами или полом, группа событий Игра деактивируется и активируются события Ударился.
При чем когда птичка сталкивается именно с полом, её направление сразу меняться на вниз.

flappybird42

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

flappybird43

Включенный flag 0 нужен, что бы оставить возможность вылететь за экран пока не появятся трубы.

После столкновения

Когда включается группа событий Ударился

flappybird44

останавливаются трубы и пол, обнуляется скорость птички и создается объект красной вспышки — он появляется при ударе.

flappybird45

Только анимация Disappearing — после неё объект удаляется

 

Заставка GameOver с лучшим результатом

flappybird51

Когда птичка падает на пол и красная вспышка уже исчезла:

  • птичка останавливается,
  • счетчик очков становится невидимым
  • и в переменную ЗначениеТаймера записывается текущее время игры, что бы управлять временем до появления надписи GameOver и доски рекордов.

flappybird52

GameOver появляется спустя 300 мс с момента падения птички на пол. Обязательно нужно проверять, что ЗначениеТаймера неравно нулю, а то GameOver будет появляться до того как птица достигнет пола. Доска рекордов появляется спустя 800 мс с момента падения птички на пол.

flappybird56

 

На доску рекордов подгружается лучший результат из сохраненного значения в объекте iniIni

Результат

flappybird57
Счетчик результата начисляется по 1 каждые 2 мс, пока не станет равен текущему результату (значению счетчика очков). И если этот результат выше предыдущего рекорда, то записываем его в ini как лучший.  И делаем видимой надпись new, которая изначально установлена как невидимая.

flappybird77

Если нужна дополнительная информация по объекту iniIni, она здесь

Медаль

  • За 10 очков — бронзовая
  • За 20 очков — серебряная
  • За 30 очков — золотая
  • За 40 и более очков — платиновая

flappybird59

flappybird60

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

Далее создается искорка блика в случайном месте на медальке.

flappybird76

Три условия:

  • только один блик создается за раз, по этому количество бликов должно быть равно нулю;
  • блик появляется после того как начислены очки;
  • и блик появляется если есть медаль, т.е. если набранные очки больше 10.

flappybird61

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

Попробовать ещё раз

flappybird62

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

В самом начале

В начале игрок видит заставку, а птичка немного двигается вверх и вниз

flappybird63

У физической птички два типа движения. В начале используется движение под названием Stay — это тип движения Path

flappybird64

После того как игрок нажимает на экран,  тип движение птички меняется на Phisics — Buncing Ball под названием Flap, а заставка растворяется.

Для Android нельзя использовать Transitions, так что растворение сделано простой анимацией Disappearing.

flappybird65

За тем данное событие деактивируется и активируется группа событий Игра, которая описана выше.

Начальные настройки

flappybird66

В начале игры, когда мы видим заставку птичка не падает, по этому тип движение — Stay
Черный квадрат — объект для переменных:

  • ВидПтички — случайно определяет один из трех цветов птички
    flappybird67
  • ЗаднийФон — фон превратиться в ночной, если эта переменная выдаст значение 2

Так же при старте игры сразу подключаем файл ini для сохранения рекорда.

Настройки для телефона

flappybird69

Размер экрана 288×511 на моем телефоне отображается как надо.

Выключены верхняя шапка и меню.

В настройках Android установлена ориентация — портрет (только вертикально).

Ну, и всё

flappybird68

Думаю, получилось довольно похоже на оригинал.

Поставь 5 звезд, если понравился мой пост, поделись ссылкой в соц.сети и спасибо за подписку!

 

FlappyBird.mfa

 

FappyBird.apk

Всем известна эта игра. Вроде, ничего особенного просто птичка прыгает через трубы. Но многие подсаживались и старались поставить свои рекорды. По слухам она принесла своему создателю 50.000 баксов за одну только баннерную рекламу. В App Store и Google Play быстро появилось множество клонов Flappy Bird. Если вам интересно как можно создать Flappy Bird на Fusion 2.5, то добро пожаловать! Используемые объекты Движение птички сделаны с помощью физики - настройки движка не менялись . За все движения птички отвечает физический объект птички с красным глазом - это Physics - Bouncing Ball . Этот объект не видим. В настройках указана высокая гравитация для того, что бы птичка резко прыгала…

10

Рейтинг: 5 ( 1 голосов)

    Рейтинг: 4,73 ( голосов - 15 )
Загрузка...
Комментариев: 11
  1. Naenys:

    Здравствуйте, помогите пожалуйста, когда я пытаюсь в проекте mfa запустить фрейм (или саму аппликацию) то у меня пишет ошибка C:\key\save.ini contains an incorrect path

  2. El Pablo:

    Подскажите пожалуйста можно ли аналогичным методом сделать аналог flappy bird со своим персонажем и фоном? И можно ли выгружать приложения созданые в Clickteam Fusion 2.5 в Google play и Appstore?

    • GQ:

      Да, конечно, Вы можете заменить спрайты и выложить приложение в Google play и Appstore.

  3. Миша:

    Пытаюсь распаковать mfa в ubuntu, пишет что архив только на чтении.
    Можешь перезалить файлик с правильными правами

  4. Денис:

    Добрый день. У меня возникла проблема. я создал игру и на ПК она прекрасно работает, но когда я делаю апк фаил и запускаю его на своем телефоне, происходит следующее:
    Первый запуск работает стабильно, но после того как врезаюсь и начинаю игру сначала, 1 труба появляется несколько раз из-за чего в трубу можно только врезаться.

  5. Денис:

    Добрый день. хотел бы узнать как создать апк фаил. Просто у меня выдает ошибку:
    Buildfile: C:\Users\1C64~1\AppData\Local\Temp\And437E.tmp\build.xml

    BUILD FAILED
    C:\Users\1C64~1\AppData\Local\Temp\And437E.tmp\build.xml:84: Cannot find C:\Users\????????\Music\tools\ant\build.xml imported from C:\Users\1C64~1\AppData\Local\Temp\And437E.tmp\build.xml

    Total time: 0 seconds

  6. Админ:

    СУПЕР!!!1

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

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Вступай в группу!