Как сделать выбор уровня / раздела как в играх в андроид студия?

В играх типа злые птицы и других выбор уровня происходит на карте типа . Там общий рисунок и уровни нарисованный и карту можно крутить как это можно сделать ? Или это только игровыми движками делается?

введите сюда описание изображения

  1. Главное нужно сделать прокрутку плавную 45 60 градусов например не только горизонтально или вертикальная прокрутка. И расставить картинки с 1,2,3 пункты так возможно вообще ?

Ответы (1 шт):

Автор решения: Спицко Дмитрий

Если задача сделать красивую цветастую анимированную тридешную пляшущую и делающую кхм-кхм... в общем, прям как в птицах - вы капитально здолбаетесь это делать без движка или хотя бы opengl.

Если достаточно довольно плоской "спрайтовой" графики, то можно сделать свое кастомное вью, которое отрисовывает нужные картинки в нужных местах, умеет это все дело скролить и реагировать на клики. Работы тоже довольно много, но она хотя бы "логическая", а не трата десятков человеко-часов на реализацию анимации блика на кнопке.

Суть следующая: делаем нашу виртуальную карту, которая измеряется в наших придуманных виртуальных единицах - попугаях. То есть есть пределы по высоте и ширине.

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

На втором этапе учимся реагировать на пальцы пользователя - интерпретировать перемещения пальца в скрол, по тыку пальцем переводить координаты тыка в пикселях в координаты тыка на карте в попугаях.

На третьем - учимся размещать на ней элементы. Вьюшка должна откуда-то читать описания объектов на карте, в которых написано в каком месте какой спрайт рисовать. Из этих объектов уметь выкидывать те, что не попадают в текущую зону видимости и в своем onDraw методе собирать из этих кусочков полное изображение.

На сносном числе объектов будет работать шустро даже на калькуляторах. Был опыт отрисовки ~2k прямоугольников и пары десятков надписей на LG K7. Для большего придется использовать OpenGL и отрисовку полигонов с натягиванием текстур. Не шибко сложно, но если не работали с ним, потратите заметное время чтобы понять как заставить его шевелиться

→ Ссылка