Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passer un SDL_Rect

a une fonction

Sujet résolu
Anonyme
    27 août 2006 à 17:53:03

    Bonjours :) (c'est la permiere fois que je met un s a bonjour, ca fait plus acceuillant ou pas ? :o )


    J'avais déjà posé cette question, et je crois que le personne qui m'avait répondu avait pour pseudo non polluant :) .


    Mais le topic a été effacé :'( .
    Je repose donc ma question : Je veux que dans mon programme, lorsque l'on clique a un endroit précis, je blitte une image.Rien de plus simple : je récupère les coordonnées du clic dans un SDL_Rect.

    Mais je veux que cela soit fait par une fonction !! :euh:


    Il faut donc que je lui transmette ma variable ecran pour blitter une surface dessus, mais aussi les coordonés du clic, et donc une variable de type SDL_Rect!!!

    ET la... :o On m'avait expliqué quelque chose sur les tableaux multidimmensionnels, et je croit me rapeller qu'il fallait mettre deux étoiles...

    Donc voila, quelqu'un pourait essayer de m'expliquer ce que je dois faire ? Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
      27 août 2006 à 18:01:57

      si tu veux passer l'endroit où à été pressé le bouton de la souris, tu fais dans le switch principal :
      case SDL_MOUSEBUTTONUP:
      ta_fonction(ecran,event.button.x,event.button.y);
      break;

      ecran est ta variable contenant l'écran.
      et ta fonction se présente comme çà :
      void ta_fonction(SDL_Surface*,int,int)
      {
      SDL_Surface *image = SDL_LoadBMP("ton_image.bmp");
      SDL_Rect r;
      r.x = x;
      r.y = y;
      SDL_BlitSurface(image,NULL,ecran,&r);
      SDL_FreeSurface(image);
      }


      voilà.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        27 août 2006 à 18:06:18

        Effectivement, j'ai confondu avec un autre problème (pour les deux * :euh: )

        Mais event.button.x et event.button.y ne sont pas des variables de types SDL_Rect ? Pourquoi as tu mis des int ?


        Edit : Et normalement, je peux aussi passer ma variable event.button tout court non?
        • Partager sur Facebook
        • Partager sur Twitter
          27 août 2006 à 18:13:07

          event.button, oui. Mais une RECT est constituée de deux membres int. En passant donc chacun des membres à la fonction, on passe alors 2 int.

          [edit] Oui, tu peux aussi.
          void fonction(SDL_Rect *truc) // Si tu dois les modifier... sinon, sans pointeurs
          {
          }
          //appel:
          fonction(&event.button);
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            27 août 2006 à 18:17:59

            Ok merci :) . Mais pourquoi SDL_Rect* et pas SDL_Rect ?
            • Partager sur Facebook
            • Partager sur Twitter
              27 août 2006 à 18:22:09

              Oula je suis fatigué moi :lol: On ne peux évidemment pas les modifier... c'était pour te montrer le cas où tu passerais une SDL_Rect déclarée par tes soins que tu voudrais modifier.
              • Partager sur Facebook
              • Partager sur Twitter

              Passer un SDL_Rect

              × 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