シューティングゲームをC言語を使って作ろうとしています。
環境は、visual C++で、DXライブラリを使用しています。 言語は、C言語です。
今回質問したのは、シューティングゲームで、弾を同時に2発出す処理で困っているので、質問しました。
ソースコードは
#define Player_Burret_MAX 3 //連続で発射される弾の数
#define Burret_FPS 10 //なんフレーム目で2発目を出すか
#define Burret_Num2 2 //同時に出す玉の数
int Player_Shot_Burret_X[Burret_Num] = { 0, 10 }; //X弾
int Player_Shot_Burret_Y[Burret_Num] = { 10, 10 }; //Y弾
void Player_Burret(){
if( CheckHitKey(KEY_INPUT_X) == 1){
for( int j=0 ; j<Player_Burret_MAX ; j++ ){
for( int i=-1 ; i<Burret_Num ; i++ ){
if( Burret[j].counter == 0 ){
if( Burret[j].Flag == 0 ){
PlaySoundMem( Music.hassya, DX_PLAYTYPE_BACK ); //音の再生
Burret[j].X = Player_Shot_Burret_X[i] + X_Player;
Burret[j].Y = Player_Shot_Burret_Y[i] + Y_Player;
Burret[j].Flag = 1;
break;
}
Burret[j].counter = Burret_FPS;
}else
Burret[j].counter -= 1;
}
}
}
for( int j=0 ; j< Player_Burret_MAX ; j++ ){
if( Burret[j].Flag == 1 ){
Burret[j].Y -= 16;
if( Burret[j].Y < -80 ) Burret[j].Flag = 0;
DrawGraph( Burret[j].X, Burret[j].Y, Burret_Graph, TRUE ); //銃
HitPoint_Burret( Burret[j].X, Burret[j].Y, j, Enemis_X, Enemis_Y );//銃ダメージ判定
}
}
}
実行してみると、弾がランダム(?)で変な箇所で発射され、連続で3発発射させたいのに、1発が画面に出たら2発目になってしまいます。
また、同時に2発出したいのに、1発づつしか発射されません。
何処の箇所が間違っているのでしょうか?また、どうすればよいでしょうか?
説明がへたくそですみません・・。