Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Clic souris sur un RectangleShape  (Lu 2359 fois)

0 Membres et 1 Invité sur ce sujet

bungee

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Clic souris sur un RectangleShape
« le: Février 13, 2013, 01:27:00 pm »
Bonjour  :)

Je suis assez novice en c++ et SFML, mais pour m’entraîner un peu, j'ai décidé de développer un démineur  ::)

Après avoir initialiser ma grille avec des mines placées au hasard, j'en viens à la gestion des clic souris sur mes cases.
J'ai utilisé des RectangleShape pour représenter mes cases et je voudrais connaitre le meilleur moyen de savoir quelle case a été cliquée.

Dois-je récupérer les coordonnées du clic et parcourir mes cases jusqu'à trouver les coordonnées qui correspondent ?

N'y-a-t-il pas un moyen plus simple ? comme lié l'event directement au RectangleShape ?

Je vous remercie d'avance pour vos conseils !  ;D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Clic souris sur un RectangleShape
« Réponse #1 le: Février 13, 2013, 01:58:52 pm »
Encore plus simple : puisque tes cases forment une grille régulière et alignée sur les axes, tu as l'indice X et Y de ta case directement avec une simple division.

int x = position_souris.x / taille_case_x;
int y = position_souris.y / taille_case_y;

case_cliquee = tableau_de_cases[x][y];

Bien entendu c'est du pseudo-code, pour te montrer l'idée. Il faut maintenant que tu adaptes ça à ton propre code.

Sinon, pour répondre à ta question, "lier un évènement à une entité" c'est vraiment pas le genre de fonctionnalité que SFML va te fournir. Ce n'est pas un moteur de jeu, juste une boîte à outils multimédia.
Laurent Gomila - SFML developer

bungee

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : Clic souris sur un RectangleShape
« Réponse #2 le: Février 13, 2013, 02:55:21 pm »
Ha !

J'ai parfaitement saisi. Cette division me permet d'accéder directement aux indices de mes cases !
Super pratique  8)

Merci Laurent !

 

anything