IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Déplacer correctement une représentation graphique d'un objet


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Octobre 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Octobre 2018
    Messages : 62
    Par défaut Déplacer correctement une représentation graphique d'un objet
    Bonjour,

    Je suis actuellement entrain de réaliser un projet pour déplacer des poissons.
    Je dispose d'un model où chaque poisson dispose d'une méthode draw qui les dessine sur un Pane par l'intermédiaire d'une ImageView.
    Je me suis un peu renseigné pour les déplacer, mais il existe plusieurs techniques, et je ne sais pas vraiment laquelle utiliser.
    Mon poisson dispose d'une position courante (currentPos) et d'une liste de destination (ArrayList de (x,y)). J'aimerai pouvoir lui dire de se déplacer au premier couple (x,y). Arrivée à la destination, qu'il reparte vers une autre destination stocké dans ce même ArrayList.

    Comment puis-je procéder ? Serait-il une bonne idée d'utiliser la classe Transition ? Si oui, j'ai cru comprendre qu'on ne pouvait pas lui dire de faire quelque chose une fois l'animation terminée.

    Je vous remercie néanmoins des idées/solutions que vous pourrez me proposer !

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par LePtitBen Voir le message
    Si oui, j'ai cru comprendre qu'on ne pouvait pas lui dire de faire quelque chose une fois l'animation terminée.
    Bonjour, je pense que si, tu peux mettre un handler a la fin de l'Animation. Voire la méthode setOnFinished de la classe Animation. https://docs.oracle.com/javafx/2/api...Animation.html
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Octobre 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Octobre 2018
    Messages : 62
    Par défaut
    Oh, effectivement, je suis passé à côté, merci beaucoup !

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Plus simple : créer une SequentialTransition composée de toutes les TranslateTransition.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Octobre 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Octobre 2018
    Messages : 62
    Par défaut
    Merci de vos réponses, je vais essayer ça et je retourne vers vous si j'ai un soucis ! Merci encore !
    La seule question que je me pose. Imaginons que mon poisson je le supprime de mon model pendant la Transition. Comment faire en sorte que je supprime aussi l'imageView associé ? Je n'ai clairement pas trouvé de méthode qui testerait quelque chose à chaque état d'avancement de la transition.

  6. #6
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Octobre 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Octobre 2018
    Messages : 62
    Par défaut
    J'ai pu tester quelques fonctionnalités. En effet, elle semble assez résoudre certains de mes soucis. Mais je me retrouve néanmoins avec un problème de coordonnée que je n'arrive pas à comprendre. Mon poisson se déplace dans l'espace de coordonnée de lui même, et non dans celui de l'écran. En effet, mon écran est de type Pane de taille 1280x720. Il est au centre et doit se rendre vers le coin supérieur gauche de l'écran (120,72). Néanmoins, quand je lance la transition, mon poisson se retrouve en dehors de l'écran, en bas à gauche, pour arriver vers son ancienne position décallé de 120,72 pixel. Ai-je mal compris quelque chose dans le système de coordonnée ?

    Je n'ai pour l'instant essayé qu'une seule transition et pas un enchainement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public void draw(Object o, IFish fish){
            Pane pane = (Pane) o;
            try{
                String[] typeFish = fish.getName().split("_");
                FileInputStream inputstream = new FileInputStream("../fishes/" + typeFish[0] +".png"); 
                Image image = new Image(inputstream); 
                ImageView fishView = new ImageView(image);
                fishView.setLayoutX(((float)fish.getPosition().getX()/100)*pane.getWidth()); // Coordinates stored in the model are in percentage of the screen size
                fishView.setLayoutY(((float)fish.getPosition().getY()/100)*pane.getHeight());
                fishView.setFitHeight(100); 
                fishView.setFitWidth(100); 
     
                //Create the transition to the first destination
                TranslateTransition transition = new TranslateTransition(Duration.millis(5000),fishView);
                transition.setFromX(fishView.getLayoutX());
                transition.setFromY(fishView.getLayoutY());
                transition.setToX(((float)fish.getDestination().get(0).getX()/100)*pane.getWidth()); //Coordinates stored in the model are in percentage of the screen size
                transition.setToY(((float)fish.getDestination().get(0).getY()/100)*pane.getHeight());
                pane.getChildren().add(fishView);
                transition.play();
            }catch(FileNotFoundException error){
                error.printStackTrace();
            }
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur une représentation graphique
    Par lpndm dans le forum MATLAB
    Réponses: 13
    Dernier message: 11/12/2012, 20h22
  2. Réponses: 4
    Dernier message: 04/07/2012, 14h46
  3. [XL-2003] Faire une représentation graphique
    Par hortencia dans le forum Conception
    Réponses: 14
    Dernier message: 09/02/2012, 07h58
  4. [WD14] Comment faire une représentation graphique
    Par noviceman1 dans le forum WinDev
    Réponses: 5
    Dernier message: 16/01/2012, 09h46
  5. Aide pour creer une palette graphique sur un objet
    Par irsis60 dans le forum Services
    Réponses: 1
    Dernier message: 05/03/2010, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo