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 :

Problème de vitesse sprite


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 27
    Points : 6
    Points
    6
    Par défaut Problème de vitesse sprite
    Bonjour, j'ai créé un sprit mais les images défilent trop rapidement alors que je ne suis qu'à 1:

    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
      public void Animate()
            {
                if (this.Animation)
                {
                    this.FrameColumn += this.Speed1; 
                    if (this.FrameColumn>8)
                    {
                        this.FrameColumn = 2;
                        this.Animation = false;
                    }
                }
                else
                {
                    this.FrameColumn -= this.Speed1; 
                    if (this.FrameColumn<2)
                    {
                        this.FrameColumn = 2;
                        this.Animation = true;
     
                    }
     
                }
            }
    Comment faire pour lui donner une vitesse inférieur à 1, car j'ai essayé quelques trucs mais je n'ai rien trouvé a part rajouter des images.

    (mon sprit à 8 images en fonctionnement.)

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par remi4227 Voir le message
    Bonjour, j'ai créé un sprit mais les images défilent trop rapidement alors que je ne suis qu'à 1:

    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
      public void Animate()
            {
                if (this.Animation)
                {
                    this.FrameColumn += this.Speed1; 
                    if (this.FrameColumn>8)
                    {
                        this.FrameColumn = 2;
                        this.Animation = false;
                    }
                }
                else
                {
                    this.FrameColumn -= this.Speed1; 
                    if (this.FrameColumn<2)
                    {
                        this.FrameColumn = 2;
                        this.Animation = true;
     
                    }
     
                }
            }
    Comment faire pour lui donner une vitesse inférieur à 1, car j'ai essayé quelques trucs mais je n'ai rien trouvé a part rajouter des images.

    (mon sprit à 8 images en fonctionnement.)
    j'aurais besoin d'une vitesse de 1/8... des solutions?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 27
    Points : 6
    Points
    6
    Par défaut re!
    rebonsoir; je fais encore appel à vous car j'ai toujours ce problème de sprite trop rapide. Avez vous des solutions?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Rémi,

    Tout d'abord il faut que je te dise : ce n'est pas la peine de pousser plusieurs fois de suite la même journée, on n'est pas forcément tous scotchés devant notre écran 24h/24 et on n'est pas le SAMU non plus.

    Cela dit, en ce qui concerne ton problème, si tu dois utiliser des fonctionnalités de "sprites", je te conseille d'utiliser plutôt la technologie WPF que la technologie WindowsForms si tu ne veux pas trop galérer à la maintenance. En effet, WindowsForms n'est pas du tout fait pour cela.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 27
    Points : 6
    Points
    6
    Par défaut bonjour
    j'utilise xna pour mon programme.
    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    XNA?
    Dans ce cas, tu n'as pas publié sur la bonne partie du forum.

    En effet, XNA est fait pour ce genre de choses, mais je ne m'y connais pas du tout dans la partie XNA...

  7. #7
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 641
    Points : 2 154
    Points
    2 154
    Par défaut
    Bonjour,

    Je ne vois pas trop comment tu cadences ton animation , du coup l'animation doit être très rapide car Animate() est appellée toutes les frames non ?

    Utilise le GameTime disponible afin de le faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            TimeSpan intervalle = TimeSpan.FromMilliseconds(200);
            TimeSpan derniereIntervalle;
    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
    25
    26
     public void Animate(GameTime gameTime)
            {
              if (intervalle + derniereIntervalle <= gameTime.TotalGameTime)
               {
                if (this.Animation)
                {
                    this.FrameColumn += this.Speed1; 
                    if (this.FrameColumn>8)
                    {
                        this.FrameColumn = 2;
                        this.Animation = false;
                    }
                }
                else
                {
                    this.FrameColumn -= this.Speed1; 
                    if (this.FrameColumn<2)
                    {
                        this.FrameColumn = 2;
                        this.Animation = true;
     
                    }
                 } 
               derniereIntervalle = gameTime.TotalGameTime; // on mets a jour 
                }
            }
    Ça cadence ton animation a 200 ms , si c'est mal placé tu peux le mettre n'importe ou.

Discussions similaires

  1. Problème de vitesse d'execution
    Par Samyhijodelaluna dans le forum MFC
    Réponses: 31
    Dernier message: 17/05/2006, 11h41
  2. [Son] problème de vitesse
    Par glloq8 dans le forum Composants
    Réponses: 6
    Dernier message: 13/02/2006, 14h45
  3. [C#]Problème DirectX SDK & Sprite(Class)
    Par doccpu dans le forum DirectX
    Réponses: 3
    Dernier message: 16/06/2005, 13h30
  4. [debutant][c++] Problème de vitesse de déplacement
    Par bornibus dans le forum OpenGL
    Réponses: 15
    Dernier message: 26/02/2005, 09h16
  5. [OpenGL] Problème de Vitesse d'éxécution
    Par stick059 dans le forum OpenGL
    Réponses: 9
    Dernier message: 19/11/2004, 13h57

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