シューティングゲームを作っています。自機から弾を出すときなんですがボタンを押すと、弾の画像が自機より少し上あたりに1回だけ表示されて終わってしまいます。
何時間かにらめっこしたんですがうまくいきません。
連続でちゃんと飛んでいく球を作るにはどうすればいいでしょうか。「シューティング基本。」を参考に書かせてもらいましたhttp://dixq.net/g/29.html
px,pyは自機の座標です。
struct SHOT{
int flag;
int x;
int y;
int gh;
int width,height;
};
void PLAYER(){
int w,h,i;
GetGraphSize(tama1,&w,&h);
SHOT shot[10];
DrawGraph(px,py,player,TRUE);
for(i=0;i<10;i++){
shot[i].x=px; shot[i].y=py;
shot[i].flag=0;
shot[i].gh=tama1;
}
if(counter<5)
counter++;
else if( Key[ KEY_INPUT_Z] == 1 ){
counter=0;
for(i=0;i<10;i++){
if(shot[i].flag==0){
shot[i].flag=1;
break;
}
}
}
for(i=0;i<10;i++){
if(shot[i].flag==1){
shot[i].y-=8;
DrawGraph( shot[i].x , shot[i].y , shot[i].gh , TRUE );
if(shot[i].y < -32){
shot[i].y=py;
shot[i].flag=0;
}
}
}
ScreenFlip() ;
}
void loadgraph(){
player =LoadGraph("画像パス");
tama1=LoadGraph("画像パス");
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE);
DxLib_Init(); //初期化
SetDrawScreen( DX_SCREEN_BACK );
loadgraph();
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0&& gpUpdateKey()==0 ){
PLAYER();
}
DxLib_End();
return 0;
}
[2.1] OS :windouws7
[2.2] コンパイラ名 : VC++ 2010 EX,
[3] C,C++は初心者です。ライブラリはDXライブラリを使っております