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

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


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


Вот как оно должно выглядеть:
2aee9b07122bbea4da6c540bf9e12aa3.png
  • Вопрос задан
  • 5087 просмотров
Пригласить эксперта
Ответы на вопрос 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, который частично позволяет реализовать функциональность выбора уровня.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы