Mainu Studio

Разработка Banana Game | Форма, физика и устойчивость

Форма столкновений, автоматическое слияние и портретное поле: три решения, на которых строится игра. Это описание реализации, а не гарантия отсутствия ошибок на любых устройствах.

Почему одного круга оказалось мало

Круглый коллайдер дёшев и предсказуем, но большой круг вокруг банана закрывает внутреннюю пустоту: сосед кажется висящим в воздухе. Маленький круг позволяет проходить сквозь кончики.

Поэтому форма столкновения следует изгибу и оставляет внутреннее пространство открытым. Виноград тоже должен сталкиваться так, как подсказывает силуэт. Но обводить каждый пиксель не стоит: мелкие выступы цепляют соседей и вызывают дрожание. Важна узнаваемая форма без лишних зацепов.

Настоящее изображение банана из игры. Пространство внутри дуги тоже участвует в механике.
Настоящее изображение банана из игры. Пространство внутри дуги тоже участвует в механике.

Одно слияние — один результат

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

Одно поле 720×1280 для всех платформ

У Web, Android и Windows разные доступные области, безопасные отступы, фильтры и ввод. Отдельные раскладки раньше приводили к кнопкам, которые смещались или растягивались только на одной платформе.

Теперь опорная раскладка 720×1280 масштабируется пропорционально, а свободные поля остаются снаружи. Сенсорная область может быть больше рисунка, но центр привязан к тем же координатам. Текст и предпросмотр используют общий масштаб. Ближайший сосед чёток при целых множителях, но большинство телефонов им не соответствуют: сначала согласуем относительную геометрию, затем выбираем фильтр для типа графики.

Вертикальное поле сохраняет пропорции, а не растягивается под каждую платформу.
Вертикальное поле сохраняет пропорции, а не растягивается под каждую платформу.

Наверх