2012-05-01 40 views
0

我在SFML方面颇为新颖,我一直在使用我在网上找到的基本平铺引擎。在平铺引擎中有一台照相机没有很好地工作,所以我把它拿出来,目的是随后用我自己的东西来替换它。直接在此之前,引擎只会绘制屏幕上的瓷砖,并且由于某种原因无法将其他瓷砖添加到需要绘制的瓷砖列表中。在当前的时间,我试图提取每瓦可能的,但在第一行后接收向量误差标 - 1.SFML平铺矢量下标超出范围

这里,这似乎是导致错误的代码:

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

Gah固定它,我觉得这么愚蠢,不知道这一点。感谢您的帮助 – that0n3guy