Как установить фон прокрутки на панели, которая повторяется? - PullRequest
0 голосов
/ 10 апреля 2019

Я кодирую небольшую видеоигру, и в главном меню мне бы хотелось иметь название игры и все, но на заднем плане я хотел бы иметь фон прокрутки, который повторяется.Например:

Пример автоматической прокрутки

Этот пример является тем, что мне нужно, хотя он примерно возвращается в исходное состояние.Это не правильный цикл.

Вот еще один пример: другой фон цикла автоматической прокрутки

Я использую панель, на которую я добавляю свои различные элементы, поэтому фон является одним из них.

То, о чем я уже думал, это использовать два изображения одного и того же изображения, но разные, и постепенно обрезать их, чтобы создать иллюзию петли / повторения.

Описанные результаты будут такими же, как я ужеупоминалось выше.

Спасибо

1 Ответ

0 голосов
/ 10 апреля 2019

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

//The containing transition.
SequentialTransition slideshow = new SequentialTransition();
//Set up my array of cards
ImageView[] slides = new ImageView[fileList.length];

for(int i = 0; i < slides.length; i++){
    //Populate my array and set up the translate transitions.
    slides[i] = new ImageView(new Image(fileList[i].getPath().substring(19)));
    slides[i].setTranslateX(slides[i].getImage().getWidth());
    //One after the other
    SequentialTransition seq = new SequentialTransition();
    //From right side to middle
    TranslateTransition peekIn = new TranslateTransition(Duration.millis(2000), slides[i]);
    //Pause in the middle
    PauseTransition stop = new PauseTransition(Duration.millis(2000));
    //From middle to left side.
    TranslateTransition peekOut = new TranslateTransition(Duration.millis(2000), slides[i]);
    //This sets up where the peeks start and finish.
    peekIn.setFromX(slides[i].getImage().getWidth());
    peekIn.setToX(0);

    peekOut.setFromX(0);
    peekOut.setToX(-1*(slides[i].getImage().getWidth()));
    //This is the order that these transitions occur.
    seq.getChildren().addAll(peekIn, stop, peekOut);
    slideshow.getChildren().add(seq);
}
//Previously created background container. (Happens to be a StackPane)
bgContainer.getChildren().addAll(slides);
//I want the Transition to play backwards as well.
slideshow.setAutoReverse(true);
//I want it to never stop
slideshow.setCycleCount(Animation.INDEFINITE);
//I start it.
slideshow.play();

Таким образом, используя различные типы переходов, я создаю эффект прокрутки карт на фоне экрана заголовка. Скорее всего, вы захотите использовать TranslateTransition s вместе с SequentialTransition s, чтобы получить эффект, который вы ищете. Переходы - очень интересные классы, и вы должны исследовать их, чтобы увидеть, являются ли они тем, чем вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...