我收到了这个奇怪的错误:
错误 C2663:“sf::Drawable::SetPosition”:2 个重载对“this”指针没有合法转换
我认为这与 const 不匹配有关,但我不知道在哪里,或者为什么。在下面的代码中,我有一个形状和精灵的向量,当尝试访问其中一个向量形状并调用它的一个函数时,我得到了错误。
std::vector<sf::Shape> Shapes;
std::vector<sf::Sprite> Sprites;
bool AddShape(sf::Shape& S){
Shapes.push_back(S); return true;
};
bool AddSprite(sf::Sprite& S){
Sprites.push_back(S); return true;
};
private:
virtual void Render(sf::RenderTarget& target) const {
for(unsigned short I; I<Shapes.size(); I++){
Shapes[I].SetPosition(
Shapes[I].GetPosition().x + GetPosition().x,
Shapes[I].GetPosition().y + GetPosition().y);
target.Draw(Shapes[I]);
}
for(unsigned short I; I<Sprites.size(); I++){
target.Draw(Sprites[I]);
}
}
我怎样才能解决这个问题?