Нижний индекс вектора мозаики SFML выходит за пределы допустимого диапазона

Я новичок в SFML, и я играл с базовым тайловым движком, который нашел в Интернете. В тайловом движке была камера, которая не очень хорошо работала, поэтому я удалил ее с намерением позже заменить на свою. Непосредственно перед этим движок отрисовывал только те тайлы, которые были на экране, и по какой-то причине не мог добавить дополнительные тайлы в список тайлов, которые нужно отрисовать. В настоящее время я пытаюсь нарисовать каждую возможную плитку, но получаю ошибку индекса вектора после первой строки - 1.

Вот код, который, кажется, вызывает ошибку:

int levelHeight = currentLevel->getHeight();
int levelWidth = currentLevel->getWidth();

for(int tileY = 1; tileY < levelHeight; tileY++)
{
    for(int tileX = 1; tileY < levelWidth; tileX++)
    {
        tile = currentLevel->getTile(tileX, tileY);

        std::cout << "Adding Tile X: " << tileX << ", Y: " << tileY << " to buffer." << std::endl;

        if(tile)
            tile->draw((tileX * tileSize), (tileY * tileSize), display);
    }
}

Если есть что-то еще, что было бы полезно, если бы я предоставил, не стесняйтесь спрашивать


person Omenien    schedule 01.05.2012    source источник


Ответы (1)


Я думаю, что условие завершения внутреннего цикла for неверно:

for(int tileX = 1; tileY < levelWidth; tileX++)

должно быть:

for(int tileX = 1; tileX < levelWidth; tileX++)
                     //^
person hmjd    schedule 01.05.2012
comment
Гах, это исправлено, я чувствую себя таким глупым, что не заметил этого. Спасибо за помощь - person Omenien; 01.05.2012