C: 用户约书亚桌面游戏项目 SFML项目测试渲染.cpp | 15 |错误:'类s

C:UsersJoshuaDesktopGame ProjectsSFML projectsTestRender.cpp|15|error: 'class std::vector<Character>' has no member named 'getSprite'|

本文关键字:项目 错误 cpp 桌面 约书亚 用户 游戏 SFML 测试      更新时间:2023-10-16

我一直收到这个错误

C:UsersJoshuaDesktopGame ProjectsSFML projectsTestRender.cpp|21|error: 'class std::vector<Character>' has no member named 'getSprite'|   

我正在尝试接受包含类型Character类的pointersvector。包含了正确的头文件,所以这不是问题所在。在过去的一个多小时里,我一直在想办法解决这个问题,但我完全迷失了方向。我认为我做得对。非常感谢您的帮助!

void Render::draw(sf::RenderWindow* window, std::vector<Character>* foreground, std::vector<Character>* background, std::vector<Character>* scenery)
{
window->clear();
for(int a = 0; a<scenery->size(); a++ )
{
    window->draw(scenery[a].getSprite());
}
for(int b = 0; b<background->size(); b++ )
{
    window->draw(background[b].getSprite());
}
for(int c = 0; c<foreground->size(); c++ )
{
    window->draw(foreground[c].getSprite());
}
window->display();
}

怎么样:

void Render::draw(sf::RenderWindow* window, std::vector<Character>* foreground, std::vector<Character>* background, std::vector<Character>* scenery)
{
window->clear();
for(int a = 0; a<scenery->size(); a++ )
{
    window->draw((*scenery)[a].getSprite());
}
for(int b = 0; b<background->size(); b++ )
{
    window->draw((*background)[b].getSprite());
}
for(int c = 0; c<foreground->size(); c++ )
{
    window->draw((*foreground)[c].getSprite());
}
window->display();
}