Меню выбора уровня в игре (Android)?

Подскажите, как сделать модное меню выбора уровня в игре, как например в Angry Birds или Blast Monkey (и чтобы там поддерживался скорллинг пальцами с плавными движениями).


Я делаю игру, используя libgdx, и это нужно в ручную реализовывать или можно с помощью встроенных компонентов интерфейса Android?


Вот как оно должно выглядеть:
2aee9b07122bbea4da6c540bf9e12aa3.png
  • Вопрос задан
  • 5148 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Zeldan
Кастомизированный HorizontalScrollView, например, куда запихиваете свои кастомные кнопки(со всеми скоре, поинтами и другой ерундой), по нажатию уже грузится непосредственно libgdx уровень, делать как часть libgdx активити не советую.
Ответ написан
ertaquo
@ertaquo
Если вы делаете не при помощи Stage и Actor'ов, рекомендую перейти на них.
Делается это так. Создается несколько Actor'ов, по одному на каждый уровень. В Stage задаются две переменные типа float, например prevLevel и currLevel. Они влияют на отрисовку уровней-Actor'ов: каждая единица означает смещение по оси X на некое расстояние (если брать скрин из Angry Birds, то это будет отрезок между правыми краями двух уровней). Если пользователь проводит пальцем линию, то надо запомнить при нажатии prevLevel, а currLevel изменить на (длина между точками нажатия) / (расстояние между краями). После отпускания пальца надо изменять currLevel в противоположную от prevLevel сторону, к ближайшему целому числу (таким образом создавая анимацию). Если длина отрезка между нажатием и отпусканием пальца слишком маленькая, то надо реагировать в зависимости от того, где произошло нажатие: если в центре, запускаем уровень, если по бокам — меняем currLevel.
Не слишком понятно, но как объяснить понятнее — не знаю.
Ответ написан
Комментировать
KvanTTT
@KvanTTT Автор вопроса
Может кому-нибудь будет полезно:

В самой последней (разрабатываемой) версии libgdx появился компонент FlickScrollPane, который частично позволяет реализовать функциональность выбора уровня.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы