今回はハンドルされていない例外という問題に困ったため、質問させていただきます。
似たような質問があるかもと思ったのですが、トピックを調べてみてもなかなか解決しないため
改めてトピックを立てました。
環境
WIN7
VC++2008EE
DXライブラリ
初心者です。
龍神録を参考にしながらC++で勉強がてらにシューティングゲームを作ろうと思っているのですが、
上記のメッセージが出て困っております。
まだ、とりあえずのラフスケッチのようなコードですが、EnemyControlというクラスのメンバのMake_Enemy()で
CSVを読み込み、敵オブジェクトを生成しています。
class Enemy{
private:
EnemyData teki;
int gh;
void Move(){}
public:
void All();
Enemy(int cnt,int pattern,int knd,double x,double y,double sp,int bltime,int blknd,int col,
int hp,int blknd2,int wait,int *item_n);//敵データ初期化などのコンストラクタ
};
class EnemyControl{
private:
//敵オブジェクトのポインタ
Enemy *enemy[ENEMY_NUM];
public:
void Make_Enemy();//CSVデータ読み込み、敵オブジェクト生成など
void All();
};
Enemy::Enemy(int cnt,int pattern,int knd,double x,double y,double sp,int bltime,int blknd,int col,
int hp,int blknd2,int wait,int *item_n){
teki.cnt=cnt;
teki.pattern=pattern;
teki.knd=knd;
teki.x=x;
teki.y=y;
teki.sp=sp;
teki.bltime=bltime;
teki.blknd=blknd;
teki.col=col;
teki.hp=hp;
teki.blknd2=blknd2;
teki.wait=wait;
for(int i=0;i<6;i++){
teki.item_n[i]=item_n[i];
}
}
void Enemy::All(){
DrawGraph(teki.x,teki.y,gh,TRUE);
}
void EnemyControl::Make_Enemy(){
EnemyData data[ENEMY_NUM];
int n,num,i,fp;
char fname[]={"story1.csv"};
int input[64];
char inputc[64];
fp = FileRead_open(fname);//ファイル読み込み
if(fp == NULL){
printfDx("read error\n");
return;
}
for(i=0;i<2;i++)//最初の2行読み飛ばす
while(FileRead_getc(fp)!='\n');
n=0 , num=0;
while(1){
for(i=0;i<64;i++){
inputc[i]=input[i]=FileRead_getc(fp);//1文字取得する
if(inputc[i]=='/'){//スラッシュがあれば
while(FileRead_getc(fp)!='\n');//改行までループ
i=-1;//カウンタを最初に戻して
continue;
}
if(input[i]==',' || input[i]=='\n'){//カンマか改行なら
inputc[i]='\0';//そこまでを文字列とし
break;
}
if(input[i]==EOF){//ファイルの終わりなら
goto EXFILE;//終了
}
}
switch(num){
case 0: data[n].cnt =atoi(inputc);break;
case 1: data[n].pattern =atoi(inputc);break;
case 2: data[n].knd =atoi(inputc);break;
case 3: data[n].x =atof(inputc);break;
case 4: data[n].y =atof(inputc);break;
case 5: data[n].sp =atof(inputc);break;
case 6: data[n].bltime =atoi(inputc);break;
case 7: data[n].blknd =atoi(inputc);break;
case 8: data[n].col =atoi(inputc);break;
case 9: data[n].hp =atoi(inputc);break;
case 10:data[n].blknd2 =atoi(inputc);break;
case 11:data[n].wait =atoi(inputc);break;
case 12:data[n].item_n[0]=atoi(inputc);break;
case 13:data[n].item_n[1]=atoi(inputc);break;
case 14:data[n].item_n[2]=atoi(inputc);break;
case 15:data[n].item_n[3]=atoi(inputc);break;
case 16:data[n].item_n[4]=atoi(inputc);break;
case 17:data[n].item_n[5]=atoi(inputc);break;
}
num++;
if(num==18){
num=0;
n++;
}
}
EXFILE:
FileRead_close(fp);
//敵オブジェクト生成
for(int i=0;i<ENEMY_NUM;i++){
enemy[i]=new Enemy(data[n].cnt,data[n].pattern,data[n].knd,data[n].x,
data[n].y,data[n].sp,data[n].bltime,data[i].blknd,data[n].col,
data[n].hp,data[n].blknd2,data[n].wait,data[n].item_n);
}
}
void EnemyControl::All(){
for(int i=0;i<ENEMY_NUM;i++){
enemy[i]->All();
}
}
プログラムを中断すると、Enemyのコンストラクタでとまります。そこに問題があるということなんででしょうか。
呼び出し履歴をみてもよくわからず、悩んでいます。
稚拙な質問かも知れませんが、アドバイスをいただきたいと思い、質問させていただきました。
どうかよろしくお願いします。