実験


vectorにpushしてpopする方式でやってみた。
環境

結果。1フレームあたり4000発くらいになるとFPSが60を切り始める。つまり余裕だね。こんな環境で参考にしてちゃダメだね。大体何FPSくらいまでならOKという基準を設けてやった方がよさそうだ。
あと作ったのが円形弾幕だったので三角関数を使ってるんだけど、標準関数のをそのまま呼び出してるので、これをテーブル参照に置き換えればだいぶ稼げそう。
テーブルを作るにあたって角度を何分割するかなんだけど、yaneSDKにあるようなsin,cosの戻り値を65536倍して16ビット整数でテーブルを作る場合、1周512分割が精度的に限界のようだ(それ以上になると異なる角度で同じテーブルの値になるものが出てくる)。
そこでどれくらいの精度があればよいか考えてみた。クライアント領域の左上(0,0)から右下(639,479)までの直線と、その隣のピクセル(638,479)までの直線が角度として区別できるようにするには、1周4200分割くらい必要なようだ。
いっそテーブルを浮動小数で作ってしまうなら、atanと同じ1周65536分割にしてしまうのが都合がいいかもしれない。