Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vitesse de balle

bizarre

    10 juin 2006 à 19:01:45

    Bonjour.
    Dans mon jeu de pong, quand je change la taille de la fenêtre (en ne touchant rien qui a un rapport avec la vitesse de la balle):
    - Quand la taille est petite comme 200x200, la balle est très rapide.
    - Quand la taille est grande comme 600x600, la balle est lente.
    Comment expliquer ça ?
    • Partager sur Facebook
    • Partager sur Twitter
      10 juin 2006 à 19:07:39

      Peut-être parce que la position de ta balle est modifiée en incrémentant le nombre de pixel....
      2 solutions:
      Soit rendre la fenêtre non-redimensionable (simple, mais bourrin)
      Soit obtenir la taille de la fenêtre avant l'affichage, et définir la position de ta balle comme un rapport de taille (avec un float allant de 0.0 à 1.0, par exemple), puis calculer à partir de là la position en pixel pour afficher.
      • Partager sur Facebook
      • Partager sur Twitter
        10 juin 2006 à 19:10:39

        Si ta balle se déplace de un pixel en un pixel plus l'écran va être grand plus la balle va mettre de temps pour aller d'un côté à un autre, et même si elle se déplace de 20 pixel à chaque fois plus la surface et grand plus de temps il va falloir pour aller d'un côté à l'autre.
        • Partager sur Facebook
        • Partager sur Twitter
          10 juin 2006 à 20:14:22

          Ce n'est pas qu'une impression du fait que la balle mette plus de temps à traverser la fenetre ?
          Théoriqument, il ne devrait pas y avoirs ce genre de PB ..
          • Partager sur Facebook
          • Partager sur Twitter
            10 juin 2006 à 22:27:31

            Ce n'est pas une impression, Ohhhh je te l'assure.
            Pour Snip69, la fenêtre est non redimensionnable.
            Pour aurek, une solution? ^^
            • Partager sur Facebook
            • Partager sur Twitter
              10 juin 2006 à 22:36:22

              Si tu definis la largeur de la fenetre, tu peux deplacer la balle de
              2 * LARGEUR_FENETRE / 100
              (pour 2% de la largeur par exemple)
              • Partager sur Facebook
              • Partager sur Twitter
                10 juin 2006 à 22:49:36

                J'ai essayé Dentuk, même problème :(
                • Partager sur Facebook
                • Partager sur Twitter
                  18 juin 2006 à 17:38:08

                  ben tu utilisaient une sdl_geticks avant pour gérer la vitesse de la balle non?alors fait un sdl_geticks qui fonctionnent aprés moins de temps
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 juin 2006 à 18:39:10

                    Tu utilises un timer ? La fonction de callback serait celle qui fait avancer la balle et l'intervalle tu le choisis. Ensuite redimensionne seulement la fenêtre et vérifie si la balle a la même vitesse pour chaue taille de fenêtre.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 juin 2006 à 22:16:19

                      Voici mon code :
                      if(jouer)
                          {
                              tempsActuel = SDL_GetTicks();
                              if(tempsActuel - tempsPrecedent > 10)
                              {
                              switch(hautbas)
                              {
                                  case 1:

                                  positionImage.y -= vitesse;
                                  break;
                                  case 0:
                                  positionImage.y += vitesse;
                                  break;
                              }
                              switch(gauchedroite)
                              {
                                  case 1:
                                  positionImage.x -= vitesse;
                                  break;
                                  case 0:
                                  positionImage.x += vitesse;
                                  break;
                              }
                              tempsPrecedent = tempsActuel;
                              }
                          }

                      même si je change le 10 en 1, ça ne change rien.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Vitesse de balle

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown