weak_ptr

キャラクタリストの要素をshared_ptrに変更しました。
差分機械的に置換しただけなので見ても面白くありません。


これで移動アルゴリズムの中で他のキャラクタの動きを監視できるようになりました。
このときshared_ptrのまま保持しているとキャラクタを削除されたことが分からないので、weak_ptrで保持しておくのがポイントです。
weak_ptrをlock()してみて、空だったらリストから削除されたことになります。


この仕組みを利用して、次の二箇所を改良しました。

  • ビームの弾数を2つに制限
  • item_box_routineでアイテムがポップアップし終わるのを正確に待つように修正

他にプレイヤーキャラを追跡する敵等の利用法も考えられれます。
画面のスクロール処理も改良できそうなので、明日はその辺りをいじってみます。