Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 19 sur 19
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut Probleme de saut SDL (jump du perso)

    Bonsoir,
    Comme son nom l'indique déjà, j'ai un problème dans la gestion de l’événement de saut de mon personnage .(il s'agit d'un jeu du même principe que Mario a peu prés ...)
    Bon après quelques recherches, je suis tombé sur des formules vraiment compliquée, du genre gravité 9. ... et la vitesse etc ...
    J'aimerais bien une formule assez simple pour résoudre ce problème, sinon une explication de la notion de gravité et de la solution sur le net.
    Merci énormément .

  2. #2
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    14 468
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 14 468
    Points : 68 242
    Points
    68 242

    Par défaut

    Bonjour,

    Une solution simple ? Pendant l'état de saut, vous faites :
    hauteurDuPerso += vitesseSaut
    Et une fois, lorsque vous le voulez, vous le faites chuter :
    hauteurDuPerso -= vitesseChute
    (Il faut aussi faire les tests de collision avec le sol)

    Sinon, on peut utiliser un sinus pour que ce soit plus beau :
    hauteurDuPerso += sin(tempsSaut) * vitesseSaut
    Mais les vrais formules donnent de meilleurs résultats. Vous pouvez vous servir de la wikipedia : http://fr.wikipedia.org/wiki/Cin%C3%A9matique
    N'hésitez pas à poser des questions, sur des points précis de cette dernière méthode
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    mars 2011
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mars 2011
    Messages : 542
    Points : 1 097
    Points
    1 097

    Par défaut

    Salut,

    Une implémentation très grossière du PFD (principe fondamentale de la dynamique) donnerait:

    Au moment du saut, on met les conditions initiales :
    position = 0 (si ton perso est sur le sol)
    vitesse = 42 (a toi de choisir la vitesse initial du saut. Plus la vitesse est élevée, plus il sautera haut)
    Pendant le saut, on fait évoluer tout ça:
    position += vitesse * dt
    vitesse -= gravité *dt (car la gravité est un accélération dirigé vers le bas. PLus la gravité est élevé, plus il retombera vite)
    Où dt est le temps écoulé depuis le step précédent (tu peux mettre dt = 1 si tu veux un résultat rapidement, mais c'est mieux de se caler sur le temp réel, ça évite des différence de comportement selon les perf des machines).

    Et on arrête ça lorsque le perso revient sur terre (lorsque position <= 0).

    A toi d'ajuster la vitesse initial et la gravité pour avoir le mouvement que tu souhaite.
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  4. #4
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Merci pour le conseil, je tacherais d'essayer cette technique et je vous informe sur les difficultés .

  5. #5
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    Une solution simple ? Pendant l'état de saut, vous faites :

    Et une fois, lorsque vous le voulez, vous le faites chuter :

    (Il faut aussi faire les tests de collision avec le sol)

    Sinon, on peut utiliser un sinus pour que ce soit plus beau :


    Mais les vrais formules donnent de meilleurs résultats. Vous pouvez vous servir de la wikipedia : http://fr.wikipedia.org/wiki/Cin%C3%A9matique
    N'hésitez pas à poser des questions, sur des points précis de cette dernière méthode
    Dans le handleInput (), la fonction qui attends une touche pour le saut, (exple Key_Up etc... ) comment pourrai-je implementer cette solution ?
    Je voulais dire autrement quoi mettre dans le temps du saut, ethauteur du perso ?
    Citation Envoyé par pyros Voir le message
    Salut,

    Une implémentation très grossière du PFD (principe fondamentale de la dynamique) donnerait:

    Au moment du saut, on met les conditions initiales :


    Pendant le saut, on fait évoluer tout ça:

    Où dt est le temps écoulé depuis le step précédent (tu peux mettre dt = 1 si tu veux un résultat rapidement, mais c'est mieux de se caler sur le temp réel, ça évite des différence de comportement selon les perf des machines).

    Et on arrête ça lorsque le perso revient sur terre (lorsque position <= 0).

    A toi d'ajuster la vitesse initial et la gravité pour avoir le mouvement que tu souhaite.
    Desolé mais je suis débutant en fait, je n'assimile pas vraiment la notion de gravité (malgré que je l'ai appris en physique), ca semble tres complexe si on va suivre cette solution avec une force E=mc² et la trajectoire etc ...
    Moi qui cherche une solution basique du saut

  6. #6
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    14 468
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 14 468
    Points : 68 242
    Points
    68 242

    Par défaut

    Citation Envoyé par dazwy Voir le message
    Dans le handleInput (), la fonction qui attends une touche pour le saut, (exple Key_Up etc... ) comment pourrai-je implementer cette solution ?
    Je voulais dire autrement quoi mettre dans le temps du saut, ethauteur du perso ?
    En théorie, vous avez une classe ou une structure pour le joueur. Lorsque vous arrivez dans la fonction handleInput() et que vous repérez le saut, vous allez changer l'état du joueur (disons que c'est une machine à état) en JOUEUR_SAUTE (par exemple). Du coup, dans la fonction de mis à jour (update) du joueur, selon l'état vous allé commencer à appliquer les changements adéquats.
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Citation Envoyé par LittleWhite Voir le message
    En théorie, vous avez une classe ou une structure pour le joueur. Lorsque vous arrivez dans la fonction handleInput() et que vous repérez le saut, vous allez changer l'état du joueur (disons que c'est une machine à état) en JOUEUR_SAUTE (par exemple). Du coup, dans la fonction de mis à jour (update) du joueur, selon l'état vous allé commencer à appliquer les changements adéquats.
    J'ai procédé ainsi suivant quelques recherches, et voila que mon perso saute, mais j'ai un petit soucis, c'est que je n'arrive plus a le stopper (il cours sans arrêt suite a l'appuis de la touche droite ou gauche).
    Voila le code :
    Code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    void stresso::handle_input()
    {
     
     const double g = 9.81;
        const double pi = 3.14;
        int v_init = 2;
        int angle_init = pi/3;
        int t = 0;
        double v_x = cos(angle_init)*v_init;
        double v_y = sin(angle_init)*v_init;
        //If a key was pressed
     
        //If a key was pressed
        if( event.type == SDL_KEYDOWN )
        {
            //Adjust the velocity
            switch( event.key.keysym.sym )
            {
            // EVOLUTION
     
                //On met à "0" les pos abs:
                case SDLK_UP:
                box.x =get_box3();
     
                box.y = get_box2()-(perso->h);
                //On calcule la valeur relative de y:
                boxrel.x=(int)(v_x*t);
                boxrel.y=(int)((v_y*t)-((g*t*t)/2000));
     
                //On calcule maintenant les valeurs absolues
     
                box.x = box.x + boxrel.x;
                box.y = box.y - boxrel.y;
     
            //Intervalle de 10ms
     
            t+=5;
     
            // FIN EVOLUTION
            //Avec en bonus une petite mise a 0 des coordonnees lorsque mario s'en va trop loin :)
            if((box.y+(perso->h))<=(box.x))
            {
                t=0;
            }
     
    break;
                case SDLK_DOWN: yVel += stresso_HEIGHT / 2; break;
                case SDLK_LEFT: xVel -= stresso_WIDTH / 2; break;
                case SDLK_RIGHT: xVel += stresso_WIDTH / 2; break;
            }
        }
     
    }

  8. #8
    Nouveau Membre du Club

    Inscrit en
    avril 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 16
    Points : 32
    Points
    32

    Par défaut

    Une solution très simple et vraiment efficace à mettre en place avec du code fait vite fait :

    Code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
     
    class Player
    {
         float x;
         float y;
         float vx;
         float vy;
    }
     
    int main()
    {
          // Données
          int gravity = 9.81;
     
          // Ajout de la gravité
          player.vy += gravity;
     
          // Gestion des collisions ici 
          if ( collisionTete ) {
                player.vy = 0;
                player.y   = positionPlafond.y + 1;
          } else if (collisionJambes ) {
                player.vy = 0;
                player.y = positionSol.y - 1;
          }    
     
          if ( collisionGauche ) {
                player.vx = 0;
                player.x   = positionObject.x + 1;
          } else if (collisionDroite ) {
                player.vx = 0;
                player.x   = positionObject.x - 1;
          }
     
          // Evenements ici
          if ( toucheSaut ) {
                player.vy = -2; // (-2 valeur au hasard ici = Hauteur du saut)
          }
     
          if( toucheGauche ) {
                player.vx = -2; // Vitesse déplacement gauche
    *     }
          else if( toucheDroite ) {
                player.vx = 2; // Vitesse déplacement droite
    *     }
          else {
                player.vx = 0; //< Le personnage s'arrete
          }
     
     
          // Mise à jour de la position
          player.x += time * player.vx;
          player.y += time * player.vy;
    }
    Avec ça, tu obtiendras des déplacements vraiment fluide, si tu as des questions sur ce code n'hésite pas

  9. #9
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Citation Envoyé par Dono_S Voir le message
    Une solution très simple et vraiment efficace à mettre en place avec du code fait vite fait :

    Code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
     
    class Player
    {
         float x;
         float y;
         float vx;
         float vy;
    }
     
    int main()
    {
          // Données
          int gravity = 9.81;
     
          // Ajout de la gravité
          player.vy += gravity;
     
          // Gestion des collisions ici 
          if ( collisionTete ) {
                player.vy = 0;
                player.y   = positionPlafond.y + 1;
          } else if (collisionJambes ) {
                player.vy = 0;
                player.y = positionSol.y - 1;
          }    
     
          if ( collisionGauche ) {
                player.vx = 0;
                player.x   = positionObject.x + 1;
          } else if (collisionDroite ) {
                player.vx = 0;
                player.x   = positionObject.x - 1;
          }
     
          // Evenements ici
          if ( toucheSaut ) {
                player.vy = -2; // (-2 valeur au hasard ici = Hauteur du saut)
          }
     
          if( toucheGauche ) {
                player.vx = -2; // Vitesse déplacement gauche
    *     }
          else if( toucheDroite ) {
                player.vx = 2; // Vitesse déplacement droite
    *     }
          else {
                player.vx = 0; //< Le personnage s'arrete
          }
     
     
          // Mise à jour de la position
          player.x += time * player.vx;
          player.y += time * player.vy;
    }
    Avec ça, tu obtiendras des déplacements vraiment fluide, si tu as des questions sur ce code n'hésite pas
    Le problème c'est que je ne vois pas comment appliquer votre code
    En fait je travaille avec les 2 Evénements (keydown et keyup).
    Je ne vois pas quoi mettre dedans suivant l'architecture de ton code .

  10. #10
    Nouveau Membre du Club

    Inscrit en
    avril 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 16
    Points : 32
    Points
    32

    Par défaut

    Le problème c'est que je ne vois pas comment appliquer votre code
    En fait je travaille avec les 2 Evénements (keydown et keyup).
    En gros tu dois utiliser des états comme la dit LittleWhite un peu plus haut, ce qui donne :

    Code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    // Init
    bool toucheSaut      = false;
    bool toucheGauche  = false;
    bool toucheDroite    = false;
     
    // Suivant la façon du du gère tes evenements (Je ne me rappelle plus exactement de la SDL)
    switch (SDL_Event) 
    {
         case SDL_KEYDOWN:
                switch( key)
                {
                      case 'q':
                           toucheGauche = true;
                           break;
                      case 'd':
                           toucheDroite  = true;
                           break;
                      case 'z':
                           toucheSaut = true;
                           break;
                 }
                 break;
         case SDL_KEYDOWN:
                switch( key)
                {
                      case 'q':
                           toucheGauche = false;
                           break;
                      case 'd':
                           toucheDroite = false;
                           break;
                      case 'z':
                           toucheSaut = false;
                           break;
                 }
                 break;
     
    }
     
    // ...
    // Le code precedent avec un petit ajout
    if ( toucheSaut ) {
     
                // Le petit ajout : Je m'assure que le joueur est au sol pour sauter
                if( player.vy == 0 )  {
                     player.vy = -2; // (-2 valeur au hasard ici = Hauteur du saut)
               }
          }
     
          if( toucheGauche ) {
                player.vx = -2; // Vitesse déplacement gauche
         }
          else if( toucheDroite ) {
                player.vx = 2; // Vitesse déplacement droite
         }
          else {
                player.vx = 0; //< Le personnage s'arrete
          }
    J'avais fait un Super mario il y a 6-7 ans, je peux te donner le code source si tu le souhaites (j'utilisais la SDL il me semble)

  11. #11
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Je vais utiliser ce code, et c'est tres aimable de votre part de m'envoyer votre code, je vais l'analyser aussi, je cree un jeu en 2D du genre mario aussi ...
    Merci !

  12. #12
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Citation Envoyé par Dono_S Voir le message
    En gros tu dois utiliser des états comme la dit LittleWhite un peu plus haut, ce qui donne :

    Code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    // Init
    bool toucheSaut      = false;
    bool toucheGauche  = false;
    bool toucheDroite    = false;
     
    // Suivant la façon du du gère tes evenements (Je ne me rappelle plus exactement de la SDL)
    switch (SDL_Event) 
    {
         case SDL_KEYDOWN:
                switch( key)
                {
                      case 'q':
                           toucheGauche = true;
                           break;
                      case 'd':
                           toucheDroite  = true;
                           break;
                      case 'z':
                           toucheSaut = true;
                           break;
                 }
                 break;
         case SDL_KEYDOWN:
                switch( key)
                {
                      case 'q':
                           toucheGauche = false;
                           break;
                      case 'd':
                           toucheDroite = false;
                           break;
                      case 'z':
                           toucheSaut = false;
                           break;
                 }
                 break;
     
    }
     
    // ...
    // Le code precedent avec un petit ajout
    if ( toucheSaut ) {
     
                // Le petit ajout : Je m'assure que le joueur est au sol pour sauter
                if( player.vy == 0 )  {
                     player.vy = -2; // (-2 valeur au hasard ici = Hauteur du saut)
               }
          }
     
          if( toucheGauche ) {
                player.vx = -2; // Vitesse déplacement gauche
         }
          else if( toucheDroite ) {
                player.vx = 2; // Vitesse déplacement droite
         }
          else {
                player.vx = 0; //< Le personnage s'arrete
          }
    J'avais fait un Super mario il y a 6-7 ans, je peux te donner le code source si tu le souhaites (j'utilisais la SDL il me semble)
    En fait suivant ce code, le perso saute et ne tombe pas sur terre, et puis ce n'est pas vraiment fluide

  13. #13
    Nouveau Membre du Club

    Inscrit en
    avril 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 16
    Points : 32
    Points
    32

    Par défaut

    Tu as bien mis le "player.vy += gravity;" ?

    Concernant les mouvements pas assez fluide, il faut que gravity soit un float et non un int comme je l'ai fait. Quand à la variable time, il s'agit d'un float.

    Voici le code de mon Mario, ça date de 2006-2007, je codais en Français et je débutais donc c'est pas super super beau, mais ça reste très lisible comprehensible .

    J'avais codé ce jeu pour apprendre à développer et pour participer au Zéro Awards du Site du zéro (c'est d'ailleurs le projet gagnant ). Je met le code source ici à disposition de tout le monde, petit cadeau pour la communauté de developpez.com en gros
    Fichiers attachés Fichiers attachés

  14. #14
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Citation Envoyé par Dono_S Voir le message
    Tu as bien mis le "player.vy += gravity;" ?

    Concernant les mouvements pas assez fluide, il faut que gravity soit un float et non un int comme je l'ai fait. Quand à la variable time, il s'agit d'un float.

    Voici le code de mon Mario, ça date de 2006-2007, je codais en Français et je débutais donc c'est pas super super beau, mais ça reste très lisible comprehensible .

    J'avais codé ce jeu pour apprendre à développer et pour participer au Zéro Awards du Site du zéro (c'est d'ailleurs le projet gagnant ). Je met le code source ici à disposition de tout le monde, petit cadeau pour la communauté de developpez.com en gros
    Je vous remercie !
    (ps : ca dépasse de loin mon niveau hihii)

  15. #15
    Candidat au titre de Membre du Club
    Inscrit en
    décembre 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 60
    Points : 12
    Points
    12

    Par défaut

    Svp ça n'a pas marché, il y aurais pas quelque chose de plus simple pour effectuer ce maudit saut ?

  16. #16
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    14 468
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 14 468
    Points : 68 242
    Points
    68 242

    Par défaut

    Pouvez vous donner plus de détails sur le "ça n'a pas marché" ? Quel est l'erreur, qu'est ce que cela a fait. Quel est votre code actuel ... enfin tout ce que l'on peut avoir besoin pour vous aider.
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  17. #17
    Membre Expert
    Homme Profil pro
    Inscrit en
    mars 2011
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mars 2011
    Messages : 542
    Points : 1 097
    Points
    1 097

    Par défaut

    il y aurais pas quelque chose de plus simple pour effectuer ce maudit saut ?
    Téléporter le perso comme à l'époque des bons vieux game & watch
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  18. #18
    Invité de passage
    Inscrit en
    mai 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : mai 2012
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Bonjour, je suis tombé sur cette discussion en cherchant une façon de créer un saut

    Voici le code que j'utilise (il est en construction), j'utilise pascal

    If estenlair then begin
    vity:=vity-5;
    fy:=fy-vity;
    end
    else if fkeyz
    then begin
    vity:=50;
    fy:=fy-vity;
    end;
    (estenlair me dit si mon perso estenlair ou sur le sol, fy position du perso, vity sa vitesse en ordonnée, fkeyz si j'appuie sur z)

    Mon problème est que quand j'appuie sur z ca me monte direct l'image de quelques crans, je ne la voie monter progressivement. La descente se fait par contre correctement.

    Je n'ai pas d'idée pour créer une boucle pour la montée, et vous ? ou faudrait-il utiliser timer ? Si oui je n'ai pas trouvé de solution.
    Vous avez des idées ?

  19. #19
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    14 468
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 14 468
    Points : 68 242
    Points
    68 242

    Par défaut

    Cela est brusque car l'accélération est brusque. Si vous voulez quelque chose de moins brusque alors il faudra augmenter la vitesse en y d'une manière progressive (au lieu de faire On peut imaginer quelque chose de ce genre :
    Code pascal :
    1
    2
    3
    4
    if fkeyz
    then begin
    if vity < 10
      vity:=vity+1;
    (Je ne connais pas le pascal, donc le code peu ne pas compiler.
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •