0

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

私が提供すると役立つものが他にある場合は、お気軽にお問い合わせください

4

1 に答える 1

2

for内部ループの終了条件が間違っていると思います:

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

次のようにする必要があります。

for(int tileX = 1; tileX < levelWidth; tileX++)
                     //^
于 2012-05-01T13:34:26.947 に答える