Probleme de pointeur avec SDL_Rect [Résolu]

Jackyzgood 26 Messages postés mercredi 17 septembre 2008Date d'inscription 6 mars 2010 Dernière intervention - 16 nov. 2008 à 21:15 - Dernière réponse : BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention
- 16 nov. 2008 à 22:52
Bonjour à tous !

Je n'ai aucun soucis quand j'utilise des pointeurs sur des variables, ou sur des tableaux, mais je n'arrive pas à utiliser les pointeurs avec SDL_Rect, je pense pourtant utiliser la bonne syntaxe : (*pointeur).x
Mais il faut aussi que je précise, que j'essaye en fait de pointer un SDL_Rect qui  ressemble à ca :
SDL_Rect clip[ 10 ][ 10 ];

J'ai souvent mon compilateur (DEV CPP) qui me signale que le type du pointeur n'est pas le même que le type de la variable, alors que ce n'est pas le cas, que le pointeur n'est pas une structure malgrés la syntaxe : (*pointeur).x, ou alors c'est des erreurs de segmentation ....

Bref ... Si quelqu'un pouvait éclairer ma lanterne en m'explicant pourquoi SDL_Rect est un cas a part, ou en me donnant un exemple.

Merci d'avance
Afficher la suite 

Votre réponse

5 réponses

BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 16 nov. 2008 à 21:47
+3
Utile
Sans connaitre SDL_Rect, pour adresser un elem de tableau:

void TaFonction(SDL_Rect *prect);

en ayant: SDL_Rect clip[10][10];
je mettrais par exemple: TaFonction(&clip[1][2]);

il en va ainsi pour toute adresse d'un elem d'un tableau.

ciao...
BruNews, MVP VC++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
Jackyzgood 26 Messages postés mercredi 17 septembre 2008Date d'inscription 6 mars 2010 Dernière intervention - 16 nov. 2008 à 22:08
0
Utile
Merci d'avoir pris le temps de me répondre, mais le plus pratique pour moi, serais d'avoir accès à l'intégralité du tableau dans ma fonction. Je vais t'expliquer ce que je cherche à faire, peut être qu'il y a une solution plus simple.

Je cherche à faire un jeu en SDL et pour cela j'ai récupéré des sprites sur le net, seulement la plus part des sprites sont mal foutu ... les différentes images ne sont pas à intervalles réguler ce qui fait que je dois les découper manuellement, et pour ca j'essaye de faire un petit prgramme pour me simplifier la tache.

Je commence par créer un fichier dans lequel je vais sauvegarder les coordonnées de découpage, position x,y longueur largeur. Je charge ensuite l'image, puis je crée ce fameux SDL_Rect clip[10][10], que j'utilise par la suite dans :

SDL_BlitSurface(image, &clip[ i ][ j ], ecran, &positionImage[ i ][ j ]);

j'arrive donc à afficher à l'ecran ceci :


l'image qui est "surlignée" en vert et l'image que l'on souhaite modifier.

Jusque la pas de probleme, le marqueur d'image se déplace correctement, et j'arrive même à modifier l'image qui est selectionné. Cependant j'utilise une fonction pour déplacer le marqueur et une autre pour modifier les coordonnées et donc les modifications se retrouve "coincé" dans ma fonction .... C'est pour ca que je cherche a utiliser un pointeur de structure de maniere a directement modifier les valeurs de découpage, pour qu'elle puissent etre utilisé dans la fonction main et donc enregistré par la suite dans le fichier
Commenter la réponse de Jackyzgood
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 16 nov. 2008 à 22:33
0
Utile
PROTO: TaFonction(SDL_Rect tab[10][10]);
tu appelles: TaFonction(clip);

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Jackyzgood 26 Messages postés mercredi 17 septembre 2008Date d'inscription 6 mars 2010 Dernière intervention - 16 nov. 2008 à 22:47
0
Utile
void decoupage (SDL_Surface *ecran, SDL_Rect clip[ 10 ][ 10 ], SDL_Rect positionImage[ 10 ][ 10 ], SDL_Rect* positionMarqueur, SDL_Surface *image, SDL_Surface *marqueur, int *pointeurContinuer)

voila le proto de ma fonction, et comme dit les modifications des valeurs de clip reste a l'interieur de la fonction decoupage, c'est pour ca que je cherche désespérément a faire un pointeur sur cette structure de maniere a changer directement les valeurs et non pas les valeurs des copies crée pour la fonction.
Commenter la réponse de Jackyzgood
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 16 nov. 2008 à 22:52
0
Utile
Si tu modifies une valeur d'un elem de clip dans ta fonction, ça modifie bien le tableau, il n'y a aucune copie de faite.
Le passage d'un tableau est toujours une adresse.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.