加速度ベースに変更
加速度ベースの処理に変更しました。
差分
最高速は加速度で調整可能だったので、コルーチンの戻り値は加速度のみとなりました。
straight_routineはこうなります。
acceleration straight_routine( routine_type::self& self, move_info mv, input_command cmd, const stage_map* map) { acceleration a; a.ay = 0.0f; // 初回のみ加速度を設定 a.ax = -1.2f; boost::tie(mv, cmd, map) = self.yield(a); // 以降は等速運動 a.ax = 0.0f; while (true) boost::tie(mv, cmd, map) = self.yield(a); HAMIGAKI_COROUTINE_UNREACHABLE_RETURN(r) }
現在のコードはこれにブロックにぶつかった後の折り返し処理が追加されています。
あと、横スクロールを追加して、マップを広くしました。
差分
画面の中央まで進むとスクロールするようになっています。