ファイアボール

これまでは、スクロールアウトしたキャラクタが削除される仕組みを利用して、削除したいキャラクタを画面外に移動させるようにしていましたが、削除対象のキャラクタにフラグを立てるようにしました。
差分
これで昨日の激重現象は改善されました。


また、昨日の直進するビームでは地面を這う敵に全然当たらないので、マリオのファイアボールのように跳ねるように変更してみました。
差分
move_routineにvelocity_routineを、speed_routineにhop_routineを設定しただけですが、それっぽく動いています。
実際に遊んでみると、この動きで敵を貫通するのは凶悪すぎたので、敵にぶつかった時点で消えるように修正しました。


あと、無制限に連射できるのもマズいですね。
fire_man_routineの中で弾数をカウントするのはいいとして、弾が消えたことを検知する仕組みが必要です。
単純に考えると、キャラクタをshared_ptrに入れて、weak_ptrでストックしておけばよい気がします。
キャラクタリストの構造を見直してみます。