Seite 1 von 1

Iterator funktioniert nicht wie gewollt

Verfasst: 1. Dezember 2013 10:14
von Max97
Hallo ich bin Max und neu hier im Forum :),

ich versuche gerade in QT einen TileEditor zu implementieren. Momentan lade ich ein Bild in eine Pixmap und kopiere dann die einzelzeile in weitere pixmaps und füge sie einer Liste hinzu
Das klappt auch soweit ganz gut. Jetzt versuche ich die tileID herauszufinden wenn ich auf das entsprechende Tile in der Scene klicke:

Code: Alles auswählen

void tileScene::getTileID(std::map<int,QPixmap> &map)
{
    for(auto it = map.begin(); it != map.end();++it)
    {
        if(x - it->second.rect().x() < 32 && y - it->second.rect().y() < 32 &&
            x - it->second.rect().x() >-32 && y - it->second.rect().y() >-32)
        {
            std::cout << "test";
        }          
    }
}
x und y sind die Mauskoordinaten und 32 ist die größe eines Tiles.

Wenn ich die Tilemap lade und auf das erste Tile klicke erscheint der text wie gewünscht, aber wenn ich auf ein anderes Teil klicke passiert nichts.
Ich habe außerdem noch nicht viel mit Iteratoren gearbeitet deswegen denke ich irgentwo einen doofen Fehler gemacht habe.

LG

Re: Iterator funktioniert nicht wie gewollt

Verfasst: 1. Dezember 2013 19:47
von Christian81
Die Benutzung des Iterators sieht ok aus - ich schätze deine Koordinaten passen nicht. Gib mal die Koordinaten aus die Du übergibst und die, die du berechnest.