Два главных элемента геймплея, с которыми нам предстоит разобраться, это Птица и Трубы.
После быстрого анализа птицы, видно, что размеры оной 17 пикселей (ширина) х 12 пикселей (высота).
Так же птичка использует всего 7 цветов и занимает всего 1/8 от ширины игрового экрана (на глаз ширина
экрана примерно 135-136 пикселей). Так же птичка масштабируется, чтобы хорошо выглядеть на девайсах с различной шириной экранa
Во время падения — птица ускоряется. Но есть ограничение — птица не может падать быстрее выставленного ограничителя. Если тыкнуть по экрану — птица подпрыгнет на одно и тоже значение по высоте, вне зависимости от скорости падения. Птица повернута в соответствующую сторону движения, т.е. падая — птица смотрит внизу, взлетая — вверх. Анимация (взмах крыльями) присутствует только когда птица летит вверх.
В один момент времени мы должны генерировать 4 труб, в оригинальной игре никогда не видно более 4-ти труб. Трубы появляются с одним и тем же интервалом, так что растояние между трубами будет константой. Как только один набор труб скроется за левой границей экрана, мы переопределим высоту (подробнее — далее) труб и переместим их за правую границу экрана в правильное положение в очереди следующих труб. Пустое пространство между трубами имеет разную позицию по высоте, но всегда один и тот же размер. Самый легкий способ — это реализовать — мы будем смещать по Y трубу на случайное значение, когда происходит перемещение по Х.
Это невероятно простая игра. Статические элементы в ней — это задний фон и песок. Они никогда не меняются. Птица зафиксирована горизонтально, примерно 1/3 от ширины экрана. Трава(?) и трубы — это единственные элементы в игре которые необходимо скролить горизонтально, и они скролятся с одинаковой скоростью.
В папке spriets находятся классы, где описываются непосредственно объекты.
В папке states находятся классы, где описывается интерфейс игры и движение объктов
State-реализация экранного пространства-состояние игры.
GameStateMeneger-управление окнами. Игра и пауза.
MenuState- экран меню где подключаются графические ресурсы.
PlayState-игровой экран. Добавляем птичку и создаем экземпляр в конструкторе и д.
Bird-создает птичку, опимывает ее поведение, т е скорость и позицию, направление движения,
текстура при нажатии. Реплизация силы тяжести в update импользуя gravity. Метод аdd доп знач
к вектору, потому умнажаем вектор на скаляр промежутка времени. Делаем изменение скорости птички
при пмдении. Всегда создаем экщемпляр в конструкторе.
Tube трубы. Две тексткры на верхнюю и нижнюю трубв. Пишем конструктор, присваиваем кпртинки в нем.
В Random делаем трубы на разной высоте. Делаем позиции просвета. Верхняя трупа рандомно, а нидня
строится по верхней и фиксированному просвету.. устанавливаем рассточние по ширине. Делаем 4 комплекта труб.
Трубы запихиапем в массич. . Устанавливаем ширину трубы.. трубы не двигаются. Двигается только камера
и птица, при этом прикрерляем позицию камеры к позтуии птицы
Animation- махание крыльями.