ページ 11

シューティングゲームの館18~20の敵のショットについて

Posted: 2008年6月01日(日) 05:25
by こめかみ
以前お世話になったこめかみです。

敵のショットの動作について質問があります。

シューティングゲームの館、20章の時点で出来上がるサンプルプログラムで
敵キャラクターのショットの量が前半と後半で変わってしまう理屈がわかりません。

うまく質問できないのですが。
前半の9回の敵のショットより後半9回の敵のショットのスピードというか密度というか
2倍(感覚的に)になるのは何故なんでしょうか。
void EnemyPattern2(int i){
        int j;
        if(enemy.counter<50)
            enemy.y+=4.0f;

        if(enemy.counter==75){
                for(j=0;j<ENEMY_TOTAL_NUM;j++)
                        if(EnemyShot[j].flag==0)
                                break;
                EnemyShot[j].mem_ex=enemy.x;
                EnemyShot[j].mem_ey=enemy.y;
                EnemyShot[j].mem_px=Player.x;
                EnemyShot[j].mem_py=Player.y;
                EnemyShot[j].counter=0;
                EnemyShot[j].flag=1;
                EnemyShot[j].pattern=1;
                EnemyShot[j].img=0;
        }

        if(enemy.counter>100)
                enemy.y-=4.0f;
}


この当たりの関数に特に注目してサンプルをいじりながら考えているのですが。
埒が明かなく投稿させていただきました。
とりあえず一定の速度で発射させるのを目標にしています。
着眼点などのアドバイスよろしくお願いします。

Re:シューティングゲームの館18~20の敵のショットについて

Posted: 2008年6月01日(日) 05:39
by こめかみ
今日はバイトがあるのでそろそろ寝ます。
課題もあるので返信は遅くなってしまうかもしれません。

失礼します。

Re:シューティングゲームの館18~20の敵のショットについて

Posted: 2008年6月01日(日) 16:15
by 管理人
それは「敵が出現してから75カウント目に発射」というモジュールを使ってる面で
皆同じですが、その敵が出現するタイミングが違うからです。
敵の出現を管理しているswitch文に
case 50:
case 70:
case 90:
case 110:
case 130:
case 150:
case 170:
case 190:
case 210:
case 220:
case 230:
case 240:
case 250:
case 260:
case 270:
case 280:
case 290:
このようにかかれていると思います。
最初は20ずつだったのに、後半は10ずつになっていますよね。
なので、この間隔を全部同じにすれば同じになります。

できました

Posted: 2008年6月02日(月) 04:37
by こめかみ
丁寧な回答ありがとうございます。

自分はswitch文の意味するところからよく分かっていなかったのですね。

理解できたのでしばらく敵の出現で遊んでみます。

一人で考えてたらきっとうまくいかなかったと思います。
感謝です。