セットを使用していくつかの TileObjects (ユーザー定義クラス) を参照し、それらをループしてそれに応じて行動したり、特定のものを見つけて削除したりしたいと考えています。
問題は、私がやりたいことの 1 つは、SDL_Surface* を取り、それに画像を適用するメンバー関数 'render' にアクセスすることです。セットの外では、これは正常に機能します。ただし、TileObject* のセットを次のように使用します。
for(set<TileObject*>::iterator it = tileObjects.begin(); it != tileObjects.end(); ++it){
(*it)->render(dest, offset, tileSheet);
}
画像が画面に表示されないことを意味します。TileObjects のセットを使用できます。
for(set<TileObject>::iterator it = tileObjects.begin(); it != tileObjects.end(); it++){
(*it).render(dest, offset, tileSheet);
}
しかし、アクセスしたい一部の関数が値を変更するため、「「const Tileset」を「this」として渡すエラー....」が表示されます。
ポインターのメンバー関数を使用して SDL でサーフェスを適用する正しい方法は何ですか?
これが役立つ場合は、GNU GCC コンパイラと Code::Blocks を使用しています。