sf::Vector2i getTileIso(sf::Vector2i mousePos, const std::string& filename) { //Error
int largeurTile = 64;
int hauteurTile = 32;
int losangeX(0);
int losangeY(0);
int rectangleX = 2 * mousePos.x / largeurTile;
int rectangleY = 2 * mousePos.y / hauteurTile;
int rectangleClicX = mousePos.x % largeurTile;
int rectangleClicY = mousePos.y % hauteurTile;
sf::Image scheme;
if (!scheme.loadFromFile(filename))
return sf::Vector2i(0, 0);
sf::Color couleur = scheme.getPixel(rectangleClicX, rectangleClicY);
//Si la couleur est bleue, c'est le losange en haut à gauche :
if (couleur == sf::Color::Blue) {
losangeX = rectangleX -1;
losangeY = rectangleY -1;
}
//Si la couleur est rouge, c'est le losange en haut à droite :
if (couleur == sf::Color::Red) {
losangeX = rectangleX +1;
losangeY = rectangleY -1;
}
//Si la couleur est jaune, c'est le losange en bas à gauche :
if (couleur == sf::Color::Yellow) {
losangeX = rectangleX -1;
losangeY = rectangleY +1;
}
//Si la couleur est verte, c'est le losange en bas à droite:
if (couleur == sf::Color::Green) {
losangeX = rectangleX +1;
losangeY = rectangleY +1;
}
//Si la couleur est blanc/noir, c'est le losange au milieu et y'a rien à changer :
if (couleur == sf::Color::White || couleur == sf::Color::Black) {
losangeX = rectangleX;
losangeY = rectangleY;
}
//Changements en cas de hors-map
if (losangeX < 0)
losangeX = 0;
if (losangeY < 0)
losangeY = 0;
return sf::Vector2i(losangeX, losangeY);
}