分かりません

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

分かりません

#1

投稿記事 by ロクサス » 14年前

コード:


#include "../include/GV.h"

//敵の移動パターン0での移動制御
void enemy_pattern0(int i){
    int t=enemy[i].cnt;
    if(t==0)
        enemy[i].vy=2;//下がってくる
    if(t==60)
        enemy[i].vy=0;//止まる
    if(t==60+enemy[i].wait)//登録された時間だけ停滞して
        enemy[i].vy=-2;//上がっていく
}

//空いている敵番号を検索
int enemy_num_search(){
        for(int i=0;i<ENEMY_MAX;i++){//フラグのたって無いenemyを探す
                if(enemy[i].flag==0){
                        return i;//使用可能番号を返す
                }
        }
        return -1;//全部埋まっていたらエラーを返す
}

//敵情報を登録
void enemy_enter(){//敵の行動を登録・制御する関数
        int i,j,t;
        for(t=0;t<ENEMY_ORDER_MAX;t++){
                if(enemy_order[t].cnt==stage_count){//現在の瞬間がオーダーの瞬間なら
                        if((i=enemy_num_search())!=-1){
                                enemy[i].flag   =1;//フラグ
                                enemy[i].cnt    =0;//カウンタ
                                enemy[i].pattern=enemy_order[t].pattern;//移動パターン
                                enemy[i].muki   =1;//向き
                                enemy[i].knd    =enemy_order[t].knd;//敵の種類
                                enemy[i].x      =enemy_order[t].x;//座標
                                enemy[i].y      =enemy_order[t].y;
                                enemy[i].sp     =enemy_order[t].sp;//スピード
                                enemy[i].bltime =enemy_order[t].bltime;//弾の発射時間
                                enemy[i].blknd  =enemy_order[t].blknd;//弾幕の種類
                                enemy[i].blknd2 =enemy_order[t].blknd2;//弾の種類
                                enemy[i].col    =enemy_order[t].col;//色
                                enemy[i].wait   =enemy_order[t].wait;//停滞時間
                                enemy[i].hp     =enemy_order[t].hp;//体力
                                enemy[i].hp_max =enemy[i].hp;//体力最大値
                                enemy[i].vx     =0;//水平成分の速度
                                enemy[i].vy     =0;//鉛直成分の速度
                                enemy[i].ang    =0;//角度
                                for(j=0;j<6;j++)
                                        enemy[i].item_n[j]=enemy_order[t].item_n[j];//落とすアイテム
                        }
                }
        }
}

//敵の行動制御
void enemy_act(){
    int i;
    for(i=0;i<ENEMY_MAX;i++){
        if(enemy[i].flag==1){//その敵のフラグがオンになってたら
            enemy_pattern0(i);
            enemy[i].x+=cos(enemy[i].ang)*enemy[i].sp;
            enemy[i].y+=sin(enemy[i].ang)*enemy[i].sp;
            enemy[i].x+=enemy[i].vx;
            enemy[i].y+=enemy[i].vy;
            enemy[i].cnt++;
            enemy[i].img=enemy[i].muki*3+(enemy[i].cnt%18)/6;
            //敵が画面から外れたら消す
            if(enemy[i].x<-20 || FIELD_MAX_X+20<enemy[i].x || enemy[i].y<-20 || FIELD_MAX_Y+20<enemy[i].y)
                enemy[i].flag=0;
        }
    }
}

//敵処理メイン
void enemy_main(){
    enemy_enter();
    enemy_act();
#include "../include/GV.h"

#define ENEMY_PATTERN_MAX 11

extern void enemy_pattern0(int);extern void enemy_pattern1(int);extern void enemy_pattern2(int);
extern void enemy_pattern3(int);extern void enemy_pattern4(int);extern void enemy_pattern5(int);
extern void enemy_pattern6(int);extern void enemy_pattern7(int);extern void enemy_pattern8(int);
extern void enemy_pattern9(int);extern void enemy_pattern10(int);

void (*enemy_pattern[ENEMY_PATTERN_MAX])(int) = {
    enemy_pattern0,    enemy_pattern1,    enemy_pattern2,    enemy_pattern3,    enemy_pattern4,
    enemy_pattern5,    enemy_pattern6,    enemy_pattern7,    enemy_pattern8,    enemy_pattern9,
    enemy_pattern10,
};

//空いている敵番号を検索
int enemy_num_search(){
    for(int i=0;i<ENEMY_MAX;i++){//フラグのたって無いenemyを探す
        if(enemy[i].flag==0){
            return i;//使用可能番号を返す
        }
    }
    return -1;//全部埋まっていたらエラーを返す
}

//敵情報を登録
void enemy_enter(){//敵の行動を登録・制御する関数
    int i,j,t;
    for(t=0;t<ENEMY_ORDER_MAX;t++){
        if(enemy_order[t].cnt==stage_count){//現在の瞬間がオーダーの瞬間なら
            if((i=enemy_num_search())!=-1){
                enemy[i].flag   =1;//フラグ
                enemy[i].cnt    =0;//カウンタ
                enemy[i].pattern=enemy_order[t].pattern;//移動パターン
                enemy[i].muki   =1;//向き
                enemy[i].knd    =enemy_order[t].knd;//敵の種類
                enemy[i].x      =enemy_order[t].x;//座標
                enemy[i].y      =enemy_order[t].y;
                enemy[i].sp     =enemy_order[t].sp;//スピード
                enemy[i].bltime =enemy_order[t].bltime;//弾の発射時間
                enemy[i].blknd  =enemy_order[t].blknd;//弾幕の種類
                enemy[i].blknd2 =enemy_order[t].blknd2;//弾の種類
                enemy[i].col    =enemy_order[t].col;//色
                enemy[i].wait   =enemy_order[t].wait;//停滞時間
                enemy[i].hp     =enemy_order[t].hp;//体力
                enemy[i].hp_max =enemy[i].hp;//体力最大値
                enemy[i].vx     =0;//水平成分の速度
                enemy[i].vy     =0;//鉛直成分の速度
                enemy[i].ang    =0;//角度
                for(j=0;j<6;j++)
                    enemy[i].item_n[j]=enemy_order[t].item_n[j];//落とすアイテム
            }
        }
    }
}

//敵の行動制御
void enemy_act(){
    int i;
    for(i=0;i<ENEMY_MAX;i++){
        if(enemy[i].flag==1){//その敵のフラグがオンになってたら
            if(0<=enemy[i].pattern && enemy[i].pattern<ENEMY_PATTERN_MAX){
                enemy_pattern[enemy[i].pattern](i);
                enemy[i].x+=cos(enemy[i].ang)*enemy[i].sp;
                enemy[i].y+=sin(enemy[i].ang)*enemy[i].sp;
                enemy[i].x+=enemy[i].vx;
                enemy[i].y+=enemy[i].vy;
                enemy[i].cnt++;
                enemy[i].img=enemy[i].muki*3+(enemy[i].cnt%18)/6;
                //敵が画面から外れたら消す
                if(enemy[i].x<-20 || FIELD_MAX_X+20<enemy[i].x || enemy[i].y<-20 || FIELD_MAX_Y+20<enemy[i].y)
                    enemy[i].flag=0;
            }
            else
                printfDx("enemy[i].patternの%d値が不正です。",enemy[i].pattern);
        }
    }
}

//敵処理メイン
void enemy_main(){
    enemy_enter();
    enemy_act();
}
(16) : error C2624: 'enemy_main::ch_t' : ローカル クラスは 'extern' 変数の宣言に使用できません。
(16) : error C2371: 'ch' : 再定義されています。異なる基本型です。
(16) : 'ch' の宣言を確認してください。
(19) : error C2624: 'enemy_main::configpad_t' : ローカル クラスは 'extern' 変数の宣言に使用できません。
(19) : error C2371: 'configpad' : 再定義されています。異なる基本型です。
(19) : 'configpad' の宣言を確認してください。
(22) : error C2624: 'enemy_main::enemy_t' : ローカル クラスは 'extern' 変数の宣言に使用できません。
(22) : error C2371: 'enemy' : 再定義されています。異なる基本型です。
(22) : 'enemy' の宣言を確認してください。
(23) : error C2624: 'enemy_main::enemy_order_t' : ローカル クラスは 'extern' 変数の宣言に使用できません。
(23) : error C2371: 'enemy_order' : 再定義されています。異なる基本型です。
(23) : 'enemy_order' の宣言を確認してください。
(94) : error C2601: 'enemy_num_search' : ローカル関数の定義が正しくありません。
(75): この行は '{' を含んでいますが、これに対応するものがありません。
(104) : error C2601: 'enemy_enter' : ローカル関数の定義が正しくありません。
(75): この行は '{' を含んでいますが、これに対応するものがありません。
(135) : error C2601: 'enemy_act' : ローカル関数の定義が正しくありません。
(75): この行は '{' を含んでいますが、これに対応するものがありません。
(158) : error C2601: 'enemy_main' : ローカル関数の定義が正しくありません。
(75): この行は '{' を含んでいますが、これに対応するものがありません。
(162) : fatal error C1075: 左側 中かっこ '{' に対応するものがありません
どなたかわかる人がいましたら返答お願いします。

アバター
bitter_fox
記事: 607
登録日時: 14年前
住所: 大阪府

Re: 分かりません

#2

投稿記事 by bitter_fox » 14年前

コード:

void enemy_main(){
    enemy_enter();
    enemy_act();
の閉じカッコがありません。
また同じ名前の関数がいくつかあります。

あと、重複してインクルードしてしまっています。(2行目と79行目)

閉鎖

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