libGdx: прокручиваемая сцена, которая больше экрана

Я пытаюсь создать небольшую игру с libGdx. Для выбора уровня мне бы хотелось иметь что-то похожее на выбор уровня в AngryBirds, где вы можете прокрутить большую "карту", ​​а затем выбрать уровень. Я знаю, что в Интернете есть несколько учебных пособий, и я прочитал их очень много, но ни один из них не помог мне.

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

Можно ли так настроить? Как я мог это реализовать? Можно ли использовать ScrollPane с одной большой сценой?

1 ответ

Решение

Вместо ScrollPane вы можете просто использовать камеру. Определите область просмотра вашей камеры, например, для ширины 80 и высоты 45 (16/9). Установите положение камеры в camWidth / 2camHight / 2 потому что положение камеры находится в ее середине, и вы хотите начать с (0/0) в нижнем левом углу справа? Затем вы можете нарисовать свои кнопки. Нарисуйте в (0/0), чтобы нарисовать в первом ряду и первом столбце. Рисование (90/0) находится вне камеры, если смотреть с (0/0) на (80/45). Чтобы прокрутить карту, вы можете просто сделать: camera.setPosition(cameraX + some Movement, cameraY) прокрутить вправо. Обратите внимание, что это всего лишь псевдокод, и важно, чтобы вы cam.update() после перемещения камеры и вы используете матрицу кулачков для вашей спрайт-партии: batch.setProjectionMatrix(cam.combined), Надеюсь, вы понимаете это. Если не оставить комментарий, и я буду редактировать.

Другие вопросы по тегам