Я пытаюсь создать массив объектов, которые я называю плитками для игры. Я использую следующую карту для отслеживания их местоположения с использованием объектов Vector2i и объектов мозаики:
std::map<sf::Vector2i, Tile, compareVector2i> allTiles;
Я прочитал в Интернете, что, поскольку объект Vector2i не имеет возможности сравнить два из них, я должен создайте его самостоятельно и добавьте на карту, поэтому я создал следующую структуру и функцию для их сравнения
struct compareVector2i {
bool operator()(const sf::Vector2i& a, const sf::Vector2i& b) const {
return a.x < b.x || a.y < b.y;
}
};
, но он не печатает массив правильно, когда я oop пролегаю по плиткам следующим образом:
for(int i = 0; i < 100; i++){
for(int j = 0; j < 100; j++){. //array of 100x100
}
}
Я заметил, что когда я меняю функцию сравнения, меняется и печать плиток. Я не думал, что это будет проблемой, потому что, поскольку каждый вектор отличается, когда я получаю доступ к определенному c, я должен получить назначенный тайл. Я не профессионал в картах, поэтому я предполагаю, что функция сравнения используется для поиска значений по ключам?
Кто-нибудь знает, как это исправить?