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

Signaler
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
-
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

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
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.
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013

Merci beaucoup.
A bientôt
Romain