処理落ちについて

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

処理落ちについて

#1

投稿記事 by サンタクロース » 15年前

こんばんわ。サンタクロースです
インペリシャブルシューティングという本家の弾幕を作っています
断片的で申し訳ないんですけど、if()が2つありますよね
龍神録と同じくtは弾幕が始まってからの時間を表しています。
弾幕が始まってからすぐに行えば処理落ちはしないのですが
今回のように始まってから70秒後くらいにこの動作を持ってくるとFPSが半分くらいになってしまいます
原因がよく分からなかったのでアドバイスをお願いします。
if(4120<=t && t<=4360 && t%2==0){//第三段階 70*60 240cnt
        angle3=PI2/120*t;
        boss_shot.base_angle[1]=3*t+60;
        for(n=0;n<4;n++){
            if((k=search_boss_shot())!=-1){
                    boss_shot.bullet[k].col   = 6;
                    boss_shot.bullet[k].x     = boss.x;
                    boss_shot.bullet[k].y     = boss.y;
                    boss_shot.bullet[k].knd   = 0;
                boss_shot.bullet[k].angle = PI2/4*n+angle3;
                boss_shot.bullet[k].flag  = 1;
                    boss_shot.bullet[k].cnt   = 0;
                    boss_shot.bullet[k].spd   = 1.8;
               boss_shot.bullet[k].state2= 3;
        }     
        }
         }

    
    if(4200<=t && t<=4380 && t%2==0 ){//第四段階 //70*60
    for(n=0;n<4;n++){
        if((k=search_boss_shot())!=-1){
                   boss_shot.bullet[k].col   = 2;
                   boss_shot.bullet[k].x     = boss.x;
                   boss_shot.bullet[k].y     = boss.y;
                   boss_shot.bullet[k].knd   = 0;
               boss_shot.bullet[k].angle = PI2/4*n+angle3;
           boss_shot.bullet[k].flag  = 1;
                   boss_shot.bullet[k].cnt   = 0;
                   boss_shot.bullet[k].spd   = 0.1;
               boss_shot.bullet[k].state2= 4;          
        }
        }
    }

めるぽん

Re:処理落ちについて

#2

投稿記事 by めるぽん » 15年前

うーん、この中に問題があるとしたら、search_boss_shot() ぐらいですかねぇ。
時間が経ってから行うから、ボスの弾が後ろの方にあってなかなか見つからずに時間が掛かっているとかそういうのが考えられます。

でも今時のPCなら数万程度の要素を探索したところで大したことはないはずなので、
時間が掛かってるのはこの部分じゃなくてもう少し別の場所にあるんじゃないかなと思います。

どこで時間が掛かってるのか、実際に時間を取って実測してみた方がいいかもしれません。

閉鎖

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