Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL] [C] SDL_Rect à partir d'un tableau

Un SDL_Rect sur une adresse contenue dans un tableau int

Sujet résolu
    4 décembre 2019 à 16:10:23

    Bonjour,
    Sur un projet personel j'ai été amené à utilser des tableaux qui stockent des SDL_Surface*, SDL_Rect, des int, etc... Tout mon programme fonctionne bien hormis sur un point qui m'empêche de l'avancer plus.

    Le problème est le suivant :
    J'ai un tableau appelé int toDisplay[100][2] qui en [i][0] comporte un SDL_Surface* et en [i][1] un SDL_Rect dans la struture Display. Le tableau fonctionne bien et répond aux attentes comme celle de l'affichage par SDL_BlitSurface où tout se déroule bien.

    Cependant, alors qu'avec un autre tableau Surfaces.SufacesIndex[i][j] qui comporte des surfaces en [i][0] j'ai pu faire ceci pour utiliser les membres de SDL_Surface* :

    SDL_Surface *surf = Surfaces.SufacesIndex[i][0];
    if(surf->w > 75)
    {
     //Faire quelque chose.
    {



     Et bien que cela fonctionne je ne parviens pas à répéter l'idée pour les SDL_Rect comme dans l'exemple suivant :

    SDL_Rect coordinates = Display.toDisplay[j][1];

    Mon logiciel m'indique que "l'initialisation de coordinates est invalide", ce qui est très probable... Mais même en pointeur cela ne marche pas. Et lorsque je veux utiliser les membres de SDL_Rect comme un coordinates.x, on m'indique que le .x, ainsi que le .y et tout ses autres membres ne font pas partie de coordinates :

    int X = coordinates.x;
    int Y = coordinates.y;


    Je m'y prend peut-être mal et je ne suis qu'un amateur c'est pourquoi après plusieurs recherches infructueuses, je demande ici s'il y a un moyen de faire cette opération dont je n'ai pas vraiment l'habitude.

    Merci d'avance pour votre aide :D!

    -
    Edité par Emilien 1er 4 décembre 2019 à 17:19:36

    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2019 à 16:54:50

      J'ai réglé mon problème. Pour utiliser les membres de SDL_Rect *coordinates = Display.toDisplay[j][1]. Il fallait faire :
      int X = coordinates->x;
      int Y = coordinates->h;
      et non:
      int X = coordinates.x;
      int Y = coordinates.y;
      Désolé du dérangement j'aurais du faire plus attention de mon côté !
      • Partager sur Facebook
      • Partager sur Twitter

      [SDL] [C] SDL_Rect à partir d'un tableau

      × 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