0

クラスのdrawScreen()関数でエラーが発生しています。Game

void Game::drawScreen()
{
    window->clear();

    std::vector<sf::Drawable*>::iterator itr;

    for(int i = 0; i <= window->getSize().y; i++)
    {
        for(itr=drawableStack.begin(); itr!=drawableStack.end(); drawableStack.pop_back())
        {
            if(**itr.getPosition().y == i)
            {
                window->draw(**itr);
            }
        }
    }

    window->display();
}

ドローアブル スタックが宣言されている

std::vector<sf::Drawable*> drawableStack;

エラーは

if(**itr.getPosition().y == i)

が気に入らず**itr.getPosition()、その代わりに何を使用すればよいかわかりません。また、この関数の目的は、画面の上から下に描画することです。これにより、「遠くにある」ものが最初に描画され、前景に近いオブジェクトがそれらの上に描画されます。これが効率的な方法のように思えない場合は、何が良いか教えてください。たくさんのオブジェクトが描画されている場合、これが遅くなる可能性があることを懸念しています。

4

2 に答える 2