我使用LibGDX并在屏幕上渲染一个图块集,并且(相当)一切正常(渲染时间约为6ms)。 问题是,在一个固定的间隔(和一帧的持续时间),FPS变得非常低(渲染时间超过200毫秒),我不能指出发生了什么。 以下是导致问题的代码:
for(int l = 0; l < _mapLayers.getCount(); ++l)
{
MapLayer layer = _mapLayers.get(l);
if(layer instanceof TiledMapTileLayer)
{
TiledMapTileLayer tileLayer = (TiledMapTileLayer)layer;
for(int yy = 0; yy < tileLayer.getHeight(); ++yy)
{
int y = tileLayer.getHeight() - yy - 1;
for(int x = 0; x < tileLayer.getWidth(); ++x)
{
Rectangle tileRect = new Rectangle(mapX + x * _tileW, mapY + yy * _tileH, _tileW, _tileH);
if(tileRect.overlaps(visibleBounds))
{
Cell cell = tileLayer.getCell(x, y);
if(cell != null)
{
TiledMapTile tile = cell.getTile();
float tx = mapX + x * _tileW;
float ty = mapY + yy * _tileH;
_batch.draw(_tileRegions.get(tile.getId()), tx, ty);
++n;
}
}
}
}
}
}
是否有人知道问题可能是什么?