Problème SDL : Récupérer la position d'une case d'un tableau (image) ?

Résolu
romain60112 Messages postés 70 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 17 avril 2013 - 4 mars 2010 à 11:10
romain60112 Messages postés 70 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 17 avril 2013 - 4 mars 2010 à 12:25
SDL : Récupérer la position d'une case d'un tableau (image) ?
Bonjours a tous,

Je souhaite savoir comment récupérer de façon efficace les coordonnées d'un tableau (image).

J'ai déjà une solution qui repose sur la scrutation Colone par Colone et Ligne par Ligne, mais cette solution est trés longue si on a de nombreuse colone et ligne.
Voici l'exemple pour A1 :
void Event_Colone_A_Ligne_1 (void)
{
//Récupération de l'état de la souris
Uint8 MouseState;
int x, y;
MouseState = SDL_GetMouseState(&x, &y);
// A
if(event.motion.x > 27 && event.motion.x < 55)
{ // 1
if(event.motion.y > 18 && event.motion.y < 40)
{
if(MouseState & SDL_BUTTON(SDL_BUTTON_LEFT))
{ cout<<"A1"<<endl;
}
}
}
}

Ainsi de suite pour A1...A10 ... J1....J10.

Voici ma fenêtre SDL :

http://img695.imageshack.us/img695/8509/sdl.png

Ma question :

- Existe t-il une méthode moins lourde (saisi des coordonnées x, y) pour scruter mon tableau et savoir quand je suis en position B2 ect..

Merci de votre aide.

Cordialement
Romain

2 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
4 mars 2010 à 11:42
Salut

Tu peux faire quelque chose comme cela:

//Récupération de l'état de la souris
Uint8 MouseState;
int x, y;
MouseState = SDL_GetMouseState(&x, &y);

for(i=0;i<NbCaseX;i++)
if(x > i*28&& x i*22&& y<i*22+22)
NumCaseY = i;

et tu as dans NumCaseX, NumCaseY la position de la case dans laquelle tu as cliqué.
A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
3
romain60112 Messages postés 70 Date d'inscription mercredi 1 octobre 2008 Statut Membre Dernière intervention 17 avril 2013 1
4 mars 2010 à 12:25
Merci beaucoup.
A bientôt
Romain
0
Rejoignez-nous