弾の消去による負荷軽減

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ume

弾の消去による負荷軽減

#1

投稿記事 by ume » 14年前

現在でている敵の弾を、時間制限後に消去する時のことです。
弾の表示は弾ごとのフラグにより判定していて、消去時には0を入れています。

弾を2000発以上出している分には負荷なく動くのですが、
2000発を時間制限後、徐々に消していく際に重たくなってしまいます。

また、画面外にでると、弾が消えるようにも設定してあるのですが、
こちらの場合、弾が消える際に負荷なく消えていきます。

弾を消すプログラムはほぼ一緒なのですが、時間制限後だと負荷がでてしまいます。
どなたかご教授おねがいします。

アバター
ひよこ
記事: 25
登録日時: 15年前

Re: 弾の消去による負荷軽減

#2

投稿記事 by ひよこ » 14年前

ループを二つ作ってたりするとか。
ソースを見ないとわかりませんが、
for(i=0;i<弾最大数;i++)
//画面外の処理
for(i=0;i<弾最大数;i++)
//時間制限後処理
みたいになっているかもと思いました。

hjkl

Re: 弾の消去による負荷軽減

#3

投稿記事 by hjkl » 14年前

時間制限版の方は画面外に弾がでてもすぐには消さないという事ですか?
2000個発射後も弾は発射され続けるんでしょうか?
だとしたら画面外を含めて弾の数が増えすぎて処理が重くなるとかじゃないでしょうか。

画面内の2000発を徐々に消していくのが遅いといことでしたら自分にはわかりません。すみません。
あと実際のソースコードを載せた方が回答を得られやすいと思います。

ume

Re: 弾の消去による負荷軽減

#4

投稿記事 by ume » 14年前

レスありがとうございます!!

ひょこさんが指摘されているのが近かったかもしれません。

弾幕の表示する関数系列とは別の場所で、
弾幕の削除関数をつくっていたせいみたいです。

弾幕の削除関数を、弾幕表示関数内に記述することで無事負荷がなくなりました。

hiklさんへ、弾幕は2000発でその後追加の弾幕はありませんでした。
c言語ではなかったのでソースは載せていませんでした。ごめんなさい

閉鎖

“C言語何でも質問掲示板” へ戻る