Заставь картинку двигаться в java FX - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу сделать картинку, которая движется на заднем плане, но я могу только заставить букву двигаться с помощью цикла case.Может кто-нибудь помочь мне решить мою проблему.

С наилучшими пожеланиями Malte Bukrinski

public class FXMain extends Application {

    @Override
    public void start(Stage primaryStage) throws IOException {
       // Parent root = FXMLLoader.load(getClass().getResource("frontierLand.fxml"));
        //Image img1 = new Image(new FileInputStream(C:\Users\Malte Bukrinski\Documents\GitHub\Projektarbejde-1.-Semester-Gruppe-05\World of Zuul Project\src\Map_Pictures\Char2.png))


        Pane pane = new Pane();
        //Image characterPicture = FXMLLoader.load(getClass().getResource("char2");
        Text text = new Text(20,20,"A"); 
        Stage stage = new Stage();

        Scene scene = new Scene(pane);

        pane.getChildren().add(text); 

        text.setOnKeyPressed(e -> { //Lambda expression 
            switch(e.getCode()){
                case DOWN: text.setY(text.getY() + 50); break;
                case UP: text.setY(text.getY() - 50); break;
                case LEFT: text.setX(text.getX()- 50); break;
                case RIGHT: text.setX(text.getX()+ 50); break;

                default:
                    if(e.getText().length() > 0)
                    {
                     text.setText(e.getText());
                    }
            }
        });




        primaryStage.setTitle("Kagearm");
        primaryStage.setScene(scene);
        primaryStage.show();
         //stage.setTitle("FrontierLand");
         //stage.setScene(scene);
         //stage.show();
        text.requestFocus();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете нарисовать изображение на холсте или в imageView в javaFX, если вы хотите нарисовать его как текст в вашем примере - это будет imageView

, а также привязать ключ к вашей сцене

        Image characterPicture = new Image(new FileInputStream("D:/yourProjectPath/toImage.png"));
        ImageView imageView = new ImageView();
        imageView.setImage(characterPicture);

        pane.getChildren().add(imageView);

        scene.setOnKeyPressed(e -> { //Lambda expression
            switch(e.getCode()){
                case DOWN: imageView.setY(imageView.getY() + 50);break;
                case UP: imageView.setY(imageView.getY() - 50); break;
                case LEFT: imageView.setX(imageView.getX()- 50); break;
                case RIGHT: imageView.setX(imageView.getX()+ 50); break;
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...