2012-05-01 4 views
0

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

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

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); 
    } 
} 

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

ответ

2

Я думаю, что внутренняя петля for условие терминатора неправильно:

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

должно быть: должно быть:

for(int tileX = 1; tileX < levelWidth; tileX++) 
        //^ 
+0

Гах, который его исправил, я чувствую себя настолько глупо, что не замечаю этого. спасибо за помощь – that0n3guy