私はどうしようもない雑魚ですが、どこを直せばいいか教えてください。
Posted: 2012年3月08日(木) 00:03
DXライブラリを使用しています。エラーの際、どこが間違っているのかすぐに見つけ出す方法はないですか?ソースが長くなると泣けてきます。
このソースだと、一瞬でてきて消えてしまいます。
このソースだと、一瞬でてきて消えてしまいます。
#include "DxLib.h"
#include "math.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if(DxLib_Init()== -1)
return -1;
SetDrawScreen(DX_SCREEN_BACK);
char Key[256];
int pgh;
int px,py;
int bgh;
int bx[1000],by[1000];
int bflag[1000];
int i;
int cool_time;
int egh;
int ex[50],ey[50];
int eflag[50];
int e_counter;
int psizex,psizey;
int bsizex,bsizey;
int esizex,esizey;
int jx[1],jy[1];//3
int jflag[1];//3
int j=0;
int jgh;//3
int game_state=0;//t
int white=GetColor(255,255,255);//t
char OldKey[256];//t
int titlebgm;//m
int bgmflag;//m
int score=0;//s
int anbgm;//a
int hadakabgm;//h
titlebgm=LoadSoundMem("title.mp3");//m
bgmflag=0;
anbgm=LoadSoundMem("an.mp3");//a
hadakabgm=LoadSoundMem("hadaka.mp3");//h
jgh=LoadGraph("jyo.jpg");//3
px = 270;
py = 400;
pgh=LoadGraph("p.jpg");
for(i=0;i<1000;i++){
bx[i]=0;
by[i]=0;
bflag[i]=0;
}
bgh=LoadGraph("b.jpg");
cool_time=0;
for(i=0;i<50;i+=1){
ex[i]=0;
ey[i]=0;
eflag[i]=0;
}
e_counter=0;
egh=LoadGraph("ee.jpg");
psizex=20;
psizey=20;
bsizex=15;
bsizey=10;
esizex=45;
esizey=40;
for(i=0;i<256;i+=1)//t
{//t
Key[i]=0;//t
OldKey[i]=0;//t
}//t
for(;;)
{
for(i=0;i<256;i+=1)//t
{//t
OldKey[i]=Key[i];//t
}//t
GetHitKeyStateAll(Key);
switch(game_state){//t
case 0://t
if(bgmflag==0)//m
{//m
PlaySoundMem(titlebgm,DX_PLAYTYPE_LOOP);//m
bgmflag=1;//m
}//m
score=0;
SetFontSize(32);//t
DrawString(100,100,"3-1シューティング(試作版)",white);//t
SetFontSize(10);//t
DrawString(100,150,"※現段階では、迫ってくる増村を愛をもって延々と打ち落とすor避けるゲームです",white);//t
SetFontSize(16);//t
DrawString(100,400,"スペースキー→ゲーム開始and弾発射",white);
if(Key[KEY_INPUT_SPACE]==1&&OldKey[KEY_INPUT_SPACE]!=1)//t
{//t
game_state=1;//t
StopSoundMem(titlebgm);//m
bgmflag=0;//m
}//t
break;//t
case 1://t
if(bgmflag==0)//h
{//h
PlaySoundMem(hadakabgm,DX_PLAYTYPE_LOOP);//h
bgmflag=1;//h
}//h
//{
if(cool_time<0){
for(i=0;0<1000;i+=1){
if (bflag[i]==0){
break;
}
}
if(i<1000){
bflag[i]=1;
bx[i]=px+5;
by[i]=py;
cool_time=20;
}
}if(Key[KEY_INPUT_LEFT]==1)//左
{
px-=3;
}
if(Key[KEY_INPUT_RIGHT]==1)//右
{
px+=3;
}
if(Key[KEY_INPUT_UP]==1)//上
{
py-=3;
}
if(Key[KEY_INPUT_DOWN]==1)//下
{
py+=3;
}
if(Key[KEY_INPUT_SPACE])
{
cool_time-=1;
for(i=0;i<1000;i+=1){
if(bflag[i]==1){
by[i]-=20;
if(by[i]<0){
bflag[i]=0;
}
}
}
if(e_counter%3==0)
{
for(i=0;i<50;i+=1)
{
if(eflag[i]==0)
{
break;
}
}
if(i<50)
{
eflag[i]=1;
ex[i]=GetRand(640);
ey[i]=0;
}
}
e_counter+=1;
for(i=0;i<50;i+=1)
{
if(eflag[i]==1)
{
ey[i]+=3;
if(ey[i]>480)
{
eflag[i]=0;
}
}
}
for(i=0;i<20;i+=1)
{
for(j=0;j<50;j+=1)
{
if(bflag[i]==1&&eflag[j]==1)
{
if(bx[i]<ex[j]+esizex && bx[i]+bsizex >ex[j] && by[i]<ey[j]+esizey && by[i]+bsizey>ey[j])
{
bflag[i]=0;
eflag[j]=0;
score+=10;//s
PlaySoundMem(anbgm,DX_PLAYTYPE_BACK);//a
}
}
}
}
for(i=0;i<50;i+=1)
{
if(eflag[i]==1)
{
if(ex[i]<px+psizex && ex[i]+esizex>px && ey[i]<py+psizey && ey[i]+esizey>py)
{
StopSoundMem(hadakabgm);
eflag[i]=0;
game_state=2;//t
bgmflag=0;
}
}
}
if(score>=1000)//3
{//3
game_state=3;//3
}//3
DrawGraph(px-15,py-20,pgh,TRUE);
for(i=0;i<50;i+=1){
if(bflag[i]==1)
{
DrawGraph(bx[i],by[i],bgh,TRUE);
}
}
for(i=0;i<50;i+=1)
{
if(eflag[i]==1){
DrawGraph(ex[i],ey[i],egh,TRUE);
}
}
DrawFormatString(0,0,GetColor(255,255,255),"得点☆%d",score);//s
break;//t
case 2://t
SetFontSize(20);//t
DrawString(100,300,"増村の愛を受けたのでゲームオーバーです",white);//t
DrawFormatString(100,400,GetColor(255,255,255),"得点☆%d",score);//s
if(Key[KEY_INPUT_SPACE]==1&&OldKey[KEY_INPUT_SPACE]!=1)//t
{//t
for(i=0;i<1000;i+=1)//t
{//t
bflag[i]=0;
}//t
for(i=0;i<50;i+=1)//t
{//t
eflag[i]=0;//t
}//t
px=270;//t
py=400;//t
game_state=0;//t
}//t
break;//t
case 3://3
default://t
break;//t
}//t
ScreenFlip();
ClearDrawScreen();
if(Key[KEY_INPUT_ESCAPE]==1)
{
break;
}
if(ProcessMessage()==-1)
{
break;
}
}
DxLib_End();
return 0;
}
}