作りたいと思っています。
ですが、なぜか下キーと、左右キーのどちらかを、同時に押しながら、
Zキーを押すと、弾が出てきません。
コードはこれです。
#include "DxLib.h"
int Key[256];
typedef struct{
int x,y,t[3][10],tf;
}Player;
Player p;
int GetKey(int InputKey[]){
char All_Key[256];
GetHitKeyStateAll( All_Key );
for(int i=0;i<256;i++){
if(All_Key[i]==1) InputKey[i]++;
else InputKey[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
int red=GetColor(255,0,0),white=GetColor(255,255,255),a,b;
p.x=320;
p.y=400;
for(a=0;a<10;a++)
for(b=0;b<3;b++)
p.t[b][a]=0;
p.tf=0;
while(ProcessMessage()==0 && ClearDrawScreen()==0 &&
GetKey(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
if(Key[KEY_INPUT_RIGHT]>0 && p.x<620) p.x+=2;
if(Key[KEY_INPUT_LEFT]>0 && p.x>20) p.x-=2;
if(Key[KEY_INPUT_DOWN]>0 && p.y<460) p.y+=1;
if(Key[KEY_INPUT_UP]>0 && p.y>20) p.y-=2;
if(p.tf>0) p.tf--;
for(a=0;a<10;a++){
if(p.t[0][a]==0 && p.tf==0 && Key[KEY_INPUT_Z]>0){
p.t[0][a]=1;
p.t[1][a]=p.x;
p.t[2][a]=p.y;
p.tf=24;
}else if(p.t[0][a]==1)
if(p.t[2][a]<-5)
for(b=0;b<3;b++)
p.t[b][a]=0;
else p.t[2][a]-=8;
}
DrawBox(0,0,640,480,white,TRUE);
DrawCircle(p.x,p.y,15,red,TRUE);
for(a=0;a<10;a++)
if(p.t[0][a]==1)
DrawBox(p.t[1][a]-2,p.t[2][a]-5,p.t[1][a]+2,p.t[2][a]+5,red,TRUE);
ScreenFlip();
}
DxLib_End();
return 0;
}
一応書いておきます。