2016-02-25 16 views
2

Итак, я пытаюсь создать 2D-прокрутку javafx-игры.JavaFX Side-Scrolling: Как генерировать интерактивные объекты в «расширенной» сцене

До сих пор я использовал AnimationTimer для управления движением своего персонажа. Но теперь я как бы застрял, пытаясь сделать ход сцены.

Я могу перемещать неинтерактивные элементы с помощью AnimationTimer снова. Но мне не хватает идеи о том, как мне создавать интерактивные элементы в игре.

Например, скажем, игрок идет много шагов и добирается до пикапа. Теперь, как я могу поставить этот пикап на сцену, так что это где-то позже в игре. Для того, чтобы попытаться объяснить мою проблему лучше, рассмотреть этот противный образ, который я нарисовал в красках:

enter image description here

Первоначально только экран между зелеными границами виден игроку. Игрок должен идти вперед (и, следовательно, экран должен идти вперед тоже) и должен найти этот пикап между двумя стенами. Как я могу нарисовать видимую видимость снаружи сцены, чтобы она появилась в поле зрения только тогда, когда игрок достиг ее?

ответ

0

Простой способ: вы добавляете все на место и даете ему абсолютные координаты. Вы перемещаете плеер, изменяя его координаты в сцене. В зависимости от положения игрока вы начинаете прокрутку. При прокрутке фона вы также перемещаете все другие объекты примерно с одинаковыми координатами x и y. Видимый вид имеет заданную ширину и высоту. В зависимости от позиции игрока, ширины/высоты и диапазона объектов объекты становятся видимыми во время прокрутки.

+1

Я знаю об этом подходе ... Но есть две проблемы: я делаю для переменных размеров экрана, поэтому я не могу жестко определить местоположение этих пикапов, вместо этого он должен быть относительно ширины/высоты сцены (некоторая помощь, если это возможно, даже если пример будет хорош в этом отношении). Следующая проблема состоит в том, что слишком много элементов для перемещения. Разве нет способа разместить все в контейнере и переместить этот контейнер? Потому что я хотел бы избежать так много задач при обновлениях пульса ..... – user3271166

+0

Если вы создадите пример кода, скорее всего, вы получите помощь. Переменные размеры экрана не являются проблемой. Конечно, вы можете разместить все это в разных контейнерах (например, в Панели), но оптимизация - это обычно процесс, который происходит, когда все работает. – Roland