Flappy Bird(WIP)

Flappy GNOME - руководство по разработке игр с боковой прокруткой, использующее Vala и GTK +.

Финальным результатом урока является мини-игра в стиле Flappy Bird.

Шаги учебника должны быть простыми, каждый шаг должен быть одним коммитом с минимальным необходимым различием. Кроме того, код довольно хорошо прокомментирован, короток и организован, поэтому его должно быть легко читать. Я осознаю тот факт, что GTK + не является фреймворком для разработки игр, не предназначен для этой цели, однако для простых игр его поддержки должно быть достаточно.

1. Базовый интерфейс игры

  • главное окно

  • окно прокрутки для боковой прокрутки

  • игровая зона

  • стрелка игрока

  • метка оценки

  • изначально визуализированные трубы

2. Прокрутка анимации

  • на клавиатуре Space отпущена, запустить анимацию

  • анимация прокручивает игровую область

  • когда достигните конца полосы прокрутки, остановитесь

3. Бесконечная прокрутка

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

4. Управление игроком и движение

  • игрок падает по умолчанию

  • игрок прыгает на кнопку Space отпущен

  • игра заканчивается, когда игрок падает на дно

5. Обнаружение столкновения

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

  • удалите предметы, когда мы проходим

  • рассчитать ограничивающую рамку игрока

  • завершить игру при столкновении игрока с трубкой

6. Новая поддержка игры

  • добавлена ​​клавиша F2 для запуска новой игры

7. Стиль интерфейса

  • добавить стиль CSS

  • стиль трубы с градиентом

  • добавить статический пол, не прокручивать

  • использовать разные стили для верхней и нижней труб

  • переместить горизонтальную полосу прокрутки над игровой областью

  • переместить виджет счета из игровой зоны на этаж

  • использовать сигнал для обработки обновлений счета

8. Дальнейшие улучшения интерфейса

  • использовать общедоступные изображения SVG вместо стрелок

  • добавить кнопку перезагрузки для легкого перезапуска игры

Last updated

Was this helpful?