1~2ヶ月前ぐらいにc++へ移行し、現在c++ 14歳から始めるゲームプログラミングという本に記載されている
サンプルプログラムをとりあえず組んで、それを指定された機能を追加したり変更したりすることを冬休みの課題で指定されているのですが、
サンプルプログラムを説明通りに組み始めて、5章の終盤でどうしても詰まってしまうところがあります。
コンパイルは正常に終了するのですが、プログラムを実行し、
敵が弾を出そうとした瞬間、std::out_of_rangeの例外エラーが発生し、正常に動作しなくなります。

ネットでググってみたのですが、原因などが全く見つかりませんでした。
エラーの内容的にどこかの変数の値がおかしくなっているのかと思い、
本の内容と実際に打ったソースを見比べましたが、見た限り間違ったところがなく、
詰まっている状況です。
現時点で分かっていることは、
・teki.cppのtamamove();を呼びださなければ例外エラーは起きない
・しかし自機の弾が何もしなくても画面上に出ている、キー操作を受け付けない、敵の弾挙動が本来と違う、
など様々な異常がある。
std::out_of_rangeの他にいろいろ異常が出ているので、
見落としている初歩的なミスがあるのかもしれませんが、
よろしくお願いします。
ちなみにコンパイラはMicrosoft Visual Studio 2013 Professional内のVisual C++ 2013を使用しております。
ソースファイル、サンプルプログラムのデータ、プロジェクトファイルはこちらになります。
http://file.immigrants.jp/c++/testgame1.zip