Bonsoir à tous!
Certains ici ont déjà dû voir mon autre topic, sur les collisions, dont le problème a été résolu.
Bon, ce soir, le souci, c'est que je programme l'inventaire. J'ai pour ainsi dire fini 75% de la programmation de l'inventaire, les 25% restant étant pour l'aspect graphique. Et on y vient!
Bon, je ne veux pas réaliser un truc super hype (à vrai dire, j'ai pas le temps pour ça là :x (oral dans un mois, donc bon)), juste quelque chose de ce style :
http://s2.noelshack.com/upload/244601537400_inventaire.png
(Bon, graphiquement, je retoucherais, évidemment, mais niveau programmation, je veux gérer un truc de ce style quoi).
L'inventaire va se servir, à la base, de cette structure :
typedef struct {
objet *TabObjets;
int taille;
int nombreObjets;
}inventaire;
typedef struct {
SDL_Rect position;
SDL_Surface* image;
int numserie;
char* NomObjet;
char* NomImage;
char* MessagePriseObjet;
char* MessageUseObjet;
bool Presence;
}objet;
(Je me doute que y'a mieux en ce qui concerne les structures, m'enfin, ma foi, c'est pas le sujet.)
Bref, par exemple, au niveau de l'affichage, y'a aucun souci, je peux me débrouiller de ce côté là. Mais :
Je bloque totalement à un moment (j'ai rien programmé hein, je ne fais qu'y réfléchir là), à savoir :
Comment établir un lien entre l'image(dans le tableau) sur laquelle on va cliquer, et l'indice du tableau dans lequel se trouve l'objet?
C'est là l'unique problème...
J'avais pensé à quelque chose de totalement pas pratique : Faire une structure if du style :
Si on clique dans la zone de l'objet 1 (avec les coordonnées + la taille de la case), alors on prend l'indice 0
Si on clique dans la zone de l'objet 2, alors on prend l'indice 1
etc...etc...
Mais vous imaginez ça avec un inventaire à 500 cases?
Donc voilà, si quelqu'un avait une idée là-dessus (pas me faire le code hein? Juste une suggestion, une piste...), ce serait top.
Passez une bonne soirée, et merci d'avance 