龍神録プログラミングの館 10章

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

龍神録プログラミングの館 10章

#1

投稿記事 by » 16年前

こんにちは

上記タイトルの10章で敵の表示を行いますがその際敵の種類のデータ(knd)を増やす処理はどのように記述するのでしょうか?
graph.cpp内の記述を
void graph_enemy(){
        int i;
        for(i=0;i<ENEMY_MAX;i++){
                if(enemy.flag==1){
                        DrawRotaGraphF(enemy.x+FIELD_X,enemy.y+FIELD_Y,1.0f,0.0f,img_enemy[0][enemy.img],TRUE);
                }
        }
}

以下のように記述
void graph_enemy(){
        int i,j;
        for(i=0;i<ENEMY_MAX;i++){
                if(enemy.flag==1){
                        DrawRotaGraphF(enemy.x+FIELD_X,enemy.y+FIELD_Y,1.0f,0.0f,img_enemy[0][enemy.img],TRUE);
                }
        }
for(i=0;i<ENEMY_MAX;i++){
                if(enemy[j].flag==1){
                        DrawRotaGraphF(enemy[j].x+FIELD_X,enemy[j].y+FIELD_Y,1.0f,0.0f,img_enemy[1][enemy[j].img],TRUE);
                }
        }
}

してみたところ敵の種類は確かに増えましたがCSVデーターにある敵の種類のデータ(knd)番号で指定しても反映されずランダムに[0]と[1]の敵が出現してしまいました。
弾の色・弾の種類・弾幕の種類の同様に指定変更させるにはどのようにすべきでしょうか?

array

Re:龍神録プログラミングの館 10章

#2

投稿記事 by array » 16年前

多分赤文字の部分を変更するだけで十分だと思います。
void graph_enemy(){
        int i,j;
        for(i=0;i<ENEMY_MAX;i++){
                if(enemy.flag==1){
                        DrawRotaGraphF(enemy.x+FIELD_X,enemy.y+FIELD_Y,1.0f,0.0f,img_enemy[enemy.knd][enemy.img],TRUE);
                }
        }
}


※補足
CSVデーターにある敵の情報は、最終的に「 enemy[値].knd 」の中に情報が格納されますので、その値を使います。
なぜ、配列の一番目を変更すれば良いのかというと、敵の画像は

GLOBAL int img_enemy[3][9];

この様に2次元配列で用意されています。分かりやすく配列の値が何を指すのかというと

img_enemy[敵の種類][アニメーション用]

この様になっているので、配列の一番目を変更すれば良いことになります。

Re:龍神録プログラミングの館 10章

#3

投稿記事 by » 16年前

ご丁寧に分かりやすい説明ありがとうございます。

とても助かり参考になりました。

閉鎖

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