Mainu Studio
Разработка Banana Game | Форма, физика и устойчивость
Форма столкновений, автоматическое слияние и портретное поле: три решения, на которых строится игра. Это описание реализации, а не гарантия отсутствия ошибок на любых устройствах.
Почему одного круга оказалось мало
Круглый коллайдер дёшев и предсказуем, но большой круг вокруг банана закрывает внутреннюю пустоту: сосед кажется висящим в воздухе. Маленький круг позволяет проходить сквозь кончики.
Поэтому форма столкновения следует изгибу и оставляет внутреннее пространство открытым. Виноград тоже должен сталкиваться так, как подсказывает силуэт. Но обводить каждый пиксель не стоит: мелкие выступы цепляют соседей и вызывают дрожание. Важна узнаваемая форма без лишних зацепов.

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