Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] changer la position

passer d'un bord à l'autre

Sujet résolu
    13 avril 2006 à 1:37:10

    Salut, j'aimerai paser d'un bord à l'autre de l'écran, seulement ma fonction ne marche pas ^^, quelqu'un pourrait il éclairer ma lanterne ? merci

    #include <SDL/SDL.h>

    #ifndef TAILLE_FENETRE
    #define LARGEUR 1024
    #define HAUTEUR 768
    #endif

    int absolue(double valeur){
        int abs;
        return abs=valeur;
    }

    void test_position(SDL_Rect *positionperso)
    {
        if(absolue((*positionperso).x)==LARGEUR){
            (*positionperso).x=1;
            (*positionperso).y=(*positionperso).y;
    }
        if(absolue((*positionperso).y)==HAUTEUR){
            (*positionperso).y=1;
            (*positionperso).x=(*positionperso).x;
    }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      13 avril 2006 à 1:44:33

      Salut, essaie ceci ;)

      #include <SDL/SDL.h>

      #ifndef TAILLE_FENETRE
      #define LARGEUR 1024
      #define HAUTEUR 768
      #endif

      int absolue(double valeur){
          int abs;
          return abs=valeur;
      }

      void test_position(SDL_Rect *positionperso)
      {
          if(absolue((*positionperso).x)>=LARGEUR){
              (*positionperso).x=1;
              (*positionperso).y=(*positionperso).y;
      }
          if(absolue((*positionperso).y)>=HAUTEUR){
              (*positionperso).y=1;
              (*positionperso).x=(*positionperso).x;
      }
      }


      Tu ne vérifiais que si ton persos est sur le bord de l'écran et non si il la dépasse.
      • Partager sur Facebook
      • Partager sur Twitter
        13 avril 2006 à 14:04:53

        Merci beaucoup ca marche nickel, je fais ameliorer tout ca de ce pas :)
        • Partager sur Facebook
        • Partager sur Twitter
          13 avril 2006 à 17:04:31

          Salut, au passage si j'ai bien compris ta fonction absolue renvoie la partie entière.
          Et il existe la fonction floor() (voir cours sur les nombres) qui fait la même chose.
          • Partager sur Facebook
          • Partager sur Twitter
            13 avril 2006 à 17:32:27

            oui, ya aussi abs() mais je preferais faire la mienne. si c'est simple autant en profiter :)
            • Partager sur Facebook
            • Partager sur Twitter

            [C] changer la position

            × 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