無理www!!!11

同時に多数発射する弾幕が大変重いのでなんとかしようと思っていた。
yaneSDK::CMemoryAllocatorPoolは内部的にlistを使っているので結局newを誘発することになるから、軽いものではないと先日気づき、今のplacement newは速度的メリットはほとんど得られていないことを知って愕然とする。そこで敵弾のクラスだけでも完全に固定配列で使いまわすことにした。


以下今日の徒労。
敵弾クラスをグローバルデータクラスに参照させようとするとヘッダが循環参照になっちまった。uzeeeeeeeeeeee!!!1include関係を全部洗いなおすのだるいから実配列じゃなくてポインタでもっておいて、コンストラクタで配列newして、それから以前敵弾をnewしていた箇所を全部オブジェクト取得の関数に切り替えて、それにあわせて敵弾クラスのoperator deleteだけをオーバーロードしたりごにょごにょいじってみて・・・実行!純粋仮想関数コールで落ちる。uzeeeeeeee!!1!11!うーむ、配列newあたりでなんかまずいことやっとんのかなー。てか今まで使わずにすんできた動的配列ちゅうのをここで持ち出すのもどうかと・・・。しゃあない、コードはむちゃくちゃになるけど、なんとかバグとってとりあえずこの方法で早くなるのかどうかだけでも確かめるか・・・。


その後、






タスクシステムそのものがlistを使っていることに気づいた




うはwwwwww俺テラバカスwwwwwww




で、達した結論
一度に多数の弾を吐く弾幕パターンを作るのをやめる
いやもうぶっちゃけポリモーフィズム弾幕シューティングとか無理だわwwwっていうかもうC++OOP的設計しても自分の首絞めるだけだよこれ。いいかげんinclude関係でスパゲッティ化するの嫌になってきたし、まともに速度出すなら型変換とか動的確保を全部廃さないとダメっぽいし、そんなんいまから設計しなおしてたら本気で完成しなさそうだし。もうこれでいくわ。
円形弾幕出せないけどね(´・ω・`)