Чертая tilemap върху прозорец за рендиране на SFML. Искам да определя коя плочка е щракната от потребителя, но просто не мога да намеря решение. Първо, всяка плочка има 32 ширина и височина. Какво опитвам в момента: Получете позицията на щракването. Обикаляйте картата на плочката, докато се намери плочка, чиято позиция е между 100. Така че, ако щракна върху (100,100), плочката трябва да започне от (96,96), но това изглежда не работи.
Ето моя кодов фрагмент от функцията getTile(mousepos x,mousepos y)
Tile* TileMap::getTile(int x, int y)
{
Tile *t = NULL;
for(int i = 0; i < tilemap.size(); i++)
{
for(int j = 0; j < tilemap[i].size(); j++)
{
if(x > tilemap[i][j].sprite.getPosition().x
&& x < (tilemap[i][j].sprite.getPosition().x+32))
{
if(y > tilemap[i][j].sprite.getPosition().y
&& y < (tilemap[i][j].sprite.getPosition().y+32))
{
t = &tilemap[i][j];
break;
}
}
}
}
return t;
}