2015-06-18 3 views
1

Я использую LibGdx для разработки игры. Сейчас я не использую scene2D. Я поражен ростом уровней игры, поскольку у меня нет экрана прокрутки.Прокрутка главного экрана в LibGdx

Мне нравится создавать прокручивающийся экран, как и во многих играх, основанных на уровне (для ссылок, скажем, Candy crush). Не могли бы вы указать мне пример того, как иметь такой экран прокрутки, чтобы показать большую область, где я могу показать много уровней.

Спасибо заранее!

ответ

2

Использование функции Scene2D для этого не требуется и больше подходит для реализации GUI и разных экранов. Панель прокрутки действительно светит при создании содержимого для чтения, которое не соответствует вашему телефону. Я советую начать изучение Scene2D, чтобы создать MenuScreens и UI.

«Candy Crush» просто «имеет» несколько фонов, которые расположены рядом друг с другом и плавно перемещаются. Они используют кнопки в правильном месте для уровней. Перетаскивая палец по экрану, камера будет двигаться в этом направлении. Для движения от одного уровня к другому, вероятно, что-то вроде сплайна в игре.

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

Вы можете сделать поиск по:

  • Tilemaps, для вас фона, но вы, вероятно, хотите, чтобы они только в одном направлении, так что простой 1D массив будет достаточно.
  • Перетаскивание, для перемещения камеры. Here I gave a basic explanations on how I do it.
  • Сплайны, немного сложнее, и они вам в действительности не нужны. Их можно использовать для анимации или перемещения чего-то вдоль кривой.

Все, ожидая, что вы знаете, как создать что-то вроде кнопки (щелкните спрайт).

+0

Menno, я пытаюсь работать с ответом, который вы указали во 2-й броне «Перетаскивание» с 3 различными экранами. В любой момент времени мне нужно проверить, не выходит ли моя камера из зоны действия, чтобы не показывать черный экран. Есть ли способ получить координаты текущего окна просмотра, чтобы я мог использовать его для проверки граничного условия. – iappmaker

+0

«Перетаскивание» не является гладким. Любая идея, как сделать это гладким. Надеюсь, это можно сделать, используя концепции Gesture. Совет plz – iappmaker

+0

Я сделал это со стрельбой. Теперь это прекрасно. Спасибо – iappmaker

Смежные вопросы