Bonjour,
J'ai une class "Carte" qui doit tracer une carte avec des tuiles et avec plusieurs couches.
Chaque tuile est un sprite.
Sauf que j'ai une erreur dans ma fonction virtual void draw quand je passe un map de sprite à draw :
class MapData;
struct carte
{
int data;
sf::Sprite block;
bool collision;
};
class Carte: public sf::Drawable, public sf::Transformable
{
public:
(...)
private:
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
{
states.transform *= getTransform();
for (int k = 0; k < m_couches ; ++k)
{
for (int i = minimum.x; i < maximum.x && i < m_largeur; ++i)
{
for (int j = minimum.y; j < maximum.y && j < m_hauteur; ++j)
{
target.draw(m_carte[m_largeur*(j+k*m_hauteur)+(i+k*m_largeur)].block, states); /// erreur ici
}
}
}
}
std::map <int, carte> m_carte;
(...)
};
error: passing 'const std::map<int, carte>' as 'this' argument of 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = int; _Tp = carte; _Compare = std::less<int>; _Alloc = std::allocator<std::pair<const int, carte> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = carte; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = int]' discards qualifiers [-fpermissive]|
Je débute en sfml et C++ et j'ai du mal à comprendre cette erreur, et comment la contourner.
Pouvez-vous m'éclairer ?
Merci