Bonjour,
J'ai crée une petite GUI pour mon jeu (ici un bouton) et je rencontre un problème. En effet, j'ai un problème avec la position du sprite qui affiche le bouton. Si je lui attribue les coordonnées (500;300), il se positionne à (500;295). Donc ça crée un problème avec la gestion des événements (survole, clique ...).
La fonction qui reçoit la position du bouton et l'attribue au sprite du survole et du "non-survole" (par défaut) :
void Bouton::SetPosition(float px, float py)
{
x = px;
y = py;
bt.setPosition(x,y);
bt_hover.setPosition(x,y);
texte.setPosition(x + (width/2 - texte.getGlobalBounds().width/2), y + (height/2 - texte.getGlobalBounds().height/2));
}
J'ai vérifié que x et y correspondaient bien aux paramètres que j'ai envoyé (on sait jamais).
Et la fonction qui initialise les sprites :
void Bouton::LoadImage(sf::Texture &img, sf::Texture &imgHover)
{
bt.setTexture(img);
width = img.getSize().x;
height = img.getSize().y;
bt_hover.setTexture(imgHover);
if(bt_hover.getTexture() != NULL)
isImgHover = true;
else
isImgHover = false;
}
Je précise que la différence entre la position envoyée et celle des sprites n'est pas constante (5 dans mon exemple) mais elle dépend de l'ordonnée (plus y augmente, plus la différence augmente).
Voilà, je vois pas d'où ça vient ...