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

Windows Forms Discussion :

Déplacer image en un temps donné


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut Déplacer image en un temps donné
    Bonjour à tous

    Pour mon projet j'ai besoin à un moment de déplacer une image en un temps donné, c'est à dire:

    Tout d'abord, j'ai une picturebox qui me sert de fond(une carte), et j'aimerais mettre dessus des pions qui puissent se déplacer sur mon fond. On m'a conseillé d'utiliser Ovalshape, mais comment ajouter ces pions par dessus?

    Ensuite j'aimerais que le pion 1 se déplace d'un endroit de ma carte à un autre endroit (connaissant les coordonnés des deux endroits) en un temps donné, c'est à dire comment faire pour que le pion aille du point 0;0 à 15;2 en 1.2 secondes par exemple?

    J'avais pensé à un timer mais j'ai un peu de mal à l'utiliser, est-ce possible dans ce cas là de gérer plusieurs pions en meme temps? qui se déplacent suivant des directions et des temps différents en meme temps?


    Merci d'avance, r0seBa

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 46
    Points : 31
    Points
    31
    Par défaut
    Effectivement le plus simple c'est d'utiliser un timer. Mais je ne sais plus trop ce que ça risque de donner si les traitements sont trop longs et que l'intervalle de temps est trop court (stack overflow ???).

    Sinon oui tu peux déplacer plusieurs pions à la fois, il suffit que tu mémorise les déplacements à effectuer et leurs états respectifs.

    par exemple tu peux faire une classe qui contiendra l'origine et la destination, et un coefficient qui te dira où tu en est de ton déplacement.
    Il te suffira ensuite de garder tous les déplacements actifs dans une liste que tu parcours à chaque évènement du timer, et tu fais les traitements qu'il faut pour chaque élément.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Je me met désormais à faire cette partie de mon code, alors j'ai commencé à étudier un peu le timer sur msdn ou autre. Mais première question:

    Le timer me permet de déplacer mon image en un temps donné, si je veut aller du point M au point M' en 3secondes le timer ne pourra pas? Il changera l'image de place au bout de 3secondes tout simplement? alors l'image ne suivra pas de trajectoire par exemple?

    Si je veux pouvoir voir l'image bouger, comment faut faire? utiliser un interval de temps réduit (par exemple 100ms) et calculer une position intermédiaire?

    Il n'y aurait pas plus simple? Pas de fonction permettant en connaissant le temps mis pour le parcours et le point d'arrivé de déplacer l'image?


    D'ailleurs s'il n'y a pas d'autres solutions je comptais mettre un interval de 50ms pour avoir une image non saccadée(correspond à 20 déplacement par secondes). Ou peut etre est-ce trop précis pour mon cas (sachant que mes pions se déplacent sur de courtes distances)?
    Enfin bref ça je testerai.

    Quelles sont les meilleurs solutions alors? je comptais calculer une fonction affine connaissant les coordonnées du début de la fin. Et connaissant le temps total je pourrais ensuite calculer les coordonnées sur la portion. Je pensais donc avant calculer toutes mes positions (les pions sont amenés à bouger plusieurs fois pendant une vingtaine de secondes).

    Et stocker tout ça dans deux tableaux par pions (un pour les x, un pour les y), sauf que ça me ferait 20 tableaux de 500 entrées pour réaliser ce que je souhaite faire(à interval de 50ms), j'imagine que 500 entrées c'est vraiment énorme et que surtout multiplié par 20 ça risque de faire bien ramer le PC non? c'est ce qui me pose problème dans l'absolu, j'ai pas envie de m'ennuyer à coder tout ça pour voir que le pc rame comme pas possible.

    EN effet faut les remplir déjà les 500*20=10 000 entrées juste pour 25 secondes, il y a surement une meilleure solution non?

    Merci

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Le timer me permet de déplacer mon image en un temps donné, si je veut aller du point M au point M' en 3secondes le timer ne pourra pas? Il changera l'image de place au bout de 3secondes tout simplement? alors l'image ne suivra pas de trajectoire par exemple
    Si tu veux du 10 images/secondes (et si le temp de tracé est inférieur à 1/10 de secondes, utilise un timer avec un intervalle de 1/10 secondes et trace l'image correspondant à la position du mobile qui dépend du temps écoulé depuis que tu as lancé ton timer.
    je comptais calculer une fonction affine connaissant les coordonnées du début de la fin.
    C'est un bon plan : calculer les positions en fonction du temps écoulé depuis le début du mouvement.
    Je pensais donc avant calculer toutes mes positions (les pions sont amenés à bouger plusieurs fois pendant une vingtaine de secondes). Et stocker tout ça dans deux tableaux par pions
    Ca ne sert à rien, puisque ton tracé à l'instant T dépend juste du nombre de fois où on est passé dans le timer depuis que tu l'as lancé (et de l'intervalle du Timer).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Comment déplacer tout un goupe d'images en même temps?
    Par krefft dans le forum Intégration
    Réponses: 3
    Dernier message: 01/04/2008, 13h08
  2. [MySQL] Stocker une image en base de données
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/03/2006, 23h51
  3. [MySQL] insertion d'une image en base de données
    Par SENCABOY dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/02/2006, 12h07
  4. Stopper un process après un temps donné
    Par Danae dans le forum Administration système
    Réponses: 12
    Dernier message: 23/12/2005, 15h07
  5. [VB.NET]Champ image dans base de donnée access
    Par dankes dans le forum Windows Forms
    Réponses: 10
    Dernier message: 06/10/2005, 16h31

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