Анимация временной шкалы Javafx - PullRequest
0 голосов
/ 09 декабря 2018

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

вот мой метод перемещения:

public void move() {
    // Updates the snake's tail using the snakeBody ArrayList.
    if (tailLength > 0) {
        for (int i = tailLength - 1; i > 0; i--) {
            snakeBody.get(i).x = snakeBody.get(i - 1).x;
            snakeBody.get(i).y = snakeBody.get(i - 1).y;
        }

        snakeBody.get(0).x = x;
        snakeBody.get(0).y =y;
    }

    // Updates the snake's position based on its speed.
    x = x + dx * START_SIZE;
    y = y + dy * START_SIZE;

в моем классе контроллера я создал метод animate:

public void animate() { 
    setFocusTraversable(true);
    setOnKeyPressed(e -> control(e));
    KeyFrame frame = new KeyFrame(Duration.millis(2000), e -> snake.move());
    animation = new Timeline(frame);
    animation.setCycleCount(Timeline.INDEFINITE);
    animation.getKeyFrames().add(frame);
    animation.play();
}

вот как выглядит мой метод управления:

public void control(KeyEvent event) {
    event.getCode();

    if ((event.getCode() == KeyCode.A || event.getCode() == KeyCode.LEFT)) {
        snake.setMoving(Direction.LEFT);
    }
    else if ((event.getCode() == KeyCode.D || event.getCode() == KeyCode.RIGHT)) {
        snake.setMoving(Direction.RIGHT);
    }
    else if ((event.getCode() == KeyCode.W || event.getCode() == KeyCode.UP)) {
         snake.setMoving(Direction.UP);
    } 
    else if ((event.getCode() == KeyCode.S || event.getCode() == KeyCode.DOWN)) {
         snake.setMoving(Direction.DOWN);
    }
    else if (event.getCode() == KeyCode.SPACE) {
        if (over) {
            animation.stop();
        } else {
            animation.pause();
            paused = !paused;
        }
    }
}

Я не уверен, что я могу сделать, чтобы создатьмассив квадратных анимаций на игровом экране

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