【问题标题】:SFML Tiling Vector Subscript Out of RangeSFML 平铺矢量下标超出范围
【发布时间】:2012-05-01 13:26:33
【问题描述】:

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

如果还有什么有用的可以私信我

【问题讨论】:

    标签: c++ vector sfml tile


    【解决方案1】:

    我认为内部for 循环终止条件不正确:

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

    应该是:

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

    【讨论】:

    • 哎呀,修复了它,我觉得自己很愚蠢,没有注意到这一点。感谢您的帮助
    猜你喜欢
    • 2021-10-23
    • 2020-06-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多