我正在 SFML 渲染窗口上绘制瓷砖地图。我想确定用户点击了哪个图块,但我似乎找不到解决方案。首先,每个瓦片有 32 个宽度和高度。我现在尝试的是:获取点击的位置。循环遍历 tilemap,直到找到位置在 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;
}