weak_ptr
キャラクタリストの要素をshared_ptrに変更しました。
差分は機械的に置換しただけなので見ても面白くありません。
これで移動アルゴリズムの中で他のキャラクタの動きを監視できるようになりました。
このときshared_ptrのまま保持しているとキャラクタを削除されたことが分からないので、weak_ptrで保持しておくのがポイントです。
weak_ptrをlock()してみて、空だったらリストから削除されたことになります。
この仕組みを利用して、次の二箇所を改良しました。
他にプレイヤーキャラを追跡する敵等の利用法も考えられれます。
画面のスクロール処理も改良できそうなので、明日はその辺りをいじってみます。