📄 mygame.cpp
字号:
// mygame.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "mygame.h"
#define MAX_LOADSTRING 100
bool g_bActive = true;
Cpplayer player1;
xg rl;
boss b;
LP_BITMAPX ppp=NULL;
LP_BITMAPX pxgw=NULL;
LP_BITMAPX bg[7];
LP_BITMAPX bull[10];
LP_BITMAPX enemy[12];
LP_BITMAPX boom[11];
LP_BITMAPX pbouns[3];
LP_BITMAPX health;
LP_BITMAPX pboss;
LP_MUSIC_SEGMENT mhit = NULL;
LP_MUSIC_SEGMENT mboom1 = NULL;
LP_MUSIC_SEGMENT mboom2 = NULL;
LP_MUSIC_SEGMENT mboom3 = NULL;
LP_MUSIC_SEGMENT mboom4 = NULL;
LP_MUSIC_SEGMENT mbul1 = NULL;
LP_MUSIC_SEGMENT mbul2 = NULL;
LP_MUSIC_SEGMENT mbul3 = NULL;
RECT bkgr1;
RECT bkgr2;
long SystemMessage()
{
MSG msg;
/* if( GetAsyncKeyState(VK_ESCAPE) )
{
Release();
}
if( GetAsyncKeyState(VK_F1) )
{
if( g_bIsDebug )
g_bIsDebug = false;
else
g_bIsDebug = true;
}
*/
if(g_pKeyboard != NULL)
g_pKeyboard->RecieveKeyboardInput(); // 获得键盘数据
if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
{
if( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
Game_Down();
return 1;
}
}
return 0;
}
int Game_Init(void)
{
GetMusic()->SetBGMode( TYPE_MIDI );
GetMusic()->SetBGRepeats( -1 );
GetMusic()->LoadBG( "music\\bkg.mid" );
GetMusic()->PlayBG( );
GetMusic()->CreateSegmentFromFile( &mhit, "music\\HIT.wav" );
GetMusic()->CreateSegmentFromFile( &mboom1, "music\\BOOM1.wav" );
GetMusic()->CreateSegmentFromFile( &mboom2, "music\\BOOM2.wav" );
GetMusic()->CreateSegmentFromFile( &mboom3, "music\\BOOM3.wav" );
GetMusic()->CreateSegmentFromFile( &mboom4, "music\\BOOM4.wav" );
GetMusic()->CreateSegmentFromFile( &mbul1, "music\\redb.wav" );
GetMusic()->CreateSegmentFromFile( &mbul2, "music\\blueb.wav" );
GetMusic()->CreateSegmentFromFile( &mbul3, "music\\yellowb.wav" );
planeenemy.clear();
vxg.clear();
vbouns.clear();
pub.clear();
rl.xgPos.x =66;
rl.xgPos .y =226;
ppp=GetGraphics()->CreateBitmapFromBMP("bmp\\player3.bmp");
ppp->SetColorKey (RGB2Hi(0,0,0));
pxgw=GetGraphics()->CreateBitmapFromBMP("bmp\\shd8.bmp");
pxgw->SetColorKey (RGB2Hi(0,0,0));
bull[0]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd1.bmp");
bull[0]->SetColorKey (RGB2Hi(0,0,0));
bull[1]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd2.bmp");
bull[1]->SetColorKey (RGB2Hi(0,0,0));
bull[2]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd3.bmp");
bull[2]->SetColorKey (RGB2Hi(0,0,0));
bull[3]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd4.bmp");
bull[3]->SetColorKey (RGB2Hi(0,0,0));
bull[4]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd5.bmp");
bull[4]->SetColorKey (RGB2Hi(0,0,0));
bull[5]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd5.bmp");
bull[5]->SetColorKey (RGB2Hi(0,0,0));
bull[6]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd6.bmp");
bull[6]->SetColorKey (RGB2Hi(0,0,0));
bull[7]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd7.bmp");
bull[7]->SetColorKey (RGB2Hi(0,0,0));
bull[8]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd8.bmp");
bull[8]->SetColorKey (RGB2Hi(0,0,0));
bull[9]=GetGraphics()->CreateBitmapFromBMP("bmp\\zd9.bmp");
bull[9]->SetColorKey (RGB2Hi(0,0,0));
enemy[0]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy0.bmp");
enemy[0]->SetColorKey (RGB2Hi(0,0,0));
enemy[1]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy1.bmp");
enemy[1]->SetColorKey (RGB2Hi(0,0,0));
enemy[2]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy2.bmp");
enemy[2]->SetColorKey (RGB2Hi(0,0,0));
enemy[3]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy3.bmp");
enemy[3]->SetColorKey (RGB2Hi(0,0,0));
enemy[4]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy4.bmp");
enemy[4]->SetColorKey (RGB2Hi(0,0,0));
enemy[5]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy5.bmp");
enemy[5]->SetColorKey (RGB2Hi(0,0,0));
enemy[6]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy6.bmp");
enemy[6]->SetColorKey (RGB2Hi(0,0,0));
enemy[7]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy7.bmp");
enemy[7]->SetColorKey (RGB2Hi(0,0,0));
enemy[8]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy8.bmp");
enemy[8]->SetColorKey (RGB2Hi(0,0,0));
enemy[9]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy9.bmp");
enemy[9]->SetColorKey (RGB2Hi(0,0,0));
enemy[10]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy10.bmp");
enemy[10]->SetColorKey (RGB2Hi(0,0,0));
enemy[11]=GetGraphics()->CreateBitmapFromBMP("bmp\\enemy11.bmp");
enemy[11]->SetColorKey (RGB2Hi(0,0,0));
boom[0]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb0.bmp");
boom[0]->SetColorKey (RGB2Hi(0,0,0));
boom[1]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb1.bmp");
boom[1]->SetColorKey (RGB2Hi(0,0,0));
boom[2]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb2.bmp");
boom[2]->SetColorKey (RGB2Hi(0,0,0));
boom[3]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb3.bmp");
boom[3]->SetColorKey (RGB2Hi(0,0,0));
boom[4]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb4.bmp");
boom[4]->SetColorKey (RGB2Hi(0,0,0));
boom[5]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb5.bmp");
boom[5]->SetColorKey (RGB2Hi(0,0,0));
boom[6]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb6.bmp");
boom[6]->SetColorKey (RGB2Hi(0,0,0));
boom[7]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb7.bmp");
boom[7]->SetColorKey (RGB2Hi(0,0,0));
boom[8]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb8.bmp");
boom[8]->SetColorKey (RGB2Hi(0,0,0));
boom[9]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb9.bmp");
boom[9]->SetColorKey (RGB2Hi(0,0,0));
boom[10]=GetGraphics()->CreateBitmapFromBMP("bmp\\bomb10.bmp");
boom[10]->SetColorKey (RGB2Hi(0,0,0));
pbouns[1]=GetGraphics()->CreateBitmapFromBMP("bmp\\bouns0.bmp");
pbouns[1]->SetColorKey (RGB2Hi(0,0,0));
pbouns[0]=GetGraphics()->CreateBitmapFromBMP("bmp\\bouns1.bmp");
pbouns[0]->SetColorKey (RGB2Hi(0,0,0));
pbouns[2]=GetGraphics()->CreateBitmapFromBMP("bmp\\bouns2.bmp");
pbouns[2]->SetColorKey (RGB2Hi(0,0,0));
health=GetGraphics()->CreateBitmapFromBMP("bmp\\health.bmp");
pboss=GetGraphics()->CreateBitmapFromBMP("bmp\\boss.bmp");
pboss->SetColorKey (RGB2Hi(0,0,0));
bg[0]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-1.bmp");
bg[1]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-2.bmp");
bg[2]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-3.bmp");
bg[3]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-4.bmp");
bg[4]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-5.bmp");
bg[5]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-6.bmp");
bg[6]=GetGraphics()->CreateBitmapFromBMP("bmp\\back1-7.bmp");
return 1;
}
int Game_Main(void)
{
long enemyidx=0;
vector<bullet>::iterator itbul;
vector<Cpenemy>::iterator itpen;
vector<bouns>::iterator itbouns;
vector<xg>::iterator itxg;
while ( 1 )
{
static float bkgm=0;
static int bkgidx=-1;
static int bkgg=0;
static int put=0,puta,putb;
int drl=0;
SystemMessage();
if (put)
{
put=0;
Cpenemy tpem(45,39,0,puta,putb,3,11,0,0,29,4,150);
planeenemy.push_back(tpem);
Cpenemy tpem1(45,39,0,puta,putb,4,11,0,0,29,4,150);
planeenemy.push_back(tpem1);
Cpenemy tpem2(45,39,0,puta,putb,5,11,0,0,29,4,150);
planeenemy.push_back(tpem2);
}
if (g_bActive){}else {Sleep(1);break;}
if (GetKeyboard()->GetCurrentStatus(DIK_DOWN)&&GetKeyboard()->GetCurrentStatus(DIK_LEFT))
{
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_DOWN;
player1.pmovdir =1;
player1.PPos .y +=2;
player1.PPos .x -=2;
rl.xgPos .x-=2;
rl.xgPos .y+=2;
if (player1.pmovidx <16) player1.pmovidx +=player1.pmovdir ;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_DOWN)&&GetKeyboard()->GetCurrentStatus(DIK_RIGHT))
{
rl.index ++;
if (rl.index>4)rl.index=0;
drl=1;
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_DOWN+MOVE_STATE_RIGHT;
player1.pmovdir =1;
player1.PPos .y +=2;
player1.PPos .x +=2;
rl.xgPos .x+=2;
rl.xgPos .y+=2;
if (player1.pmovidx <16)player1.pmovidx +=player1.pmovdir ;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_UP)&&GetKeyboard()->GetCurrentStatus(DIK_LEFT))
{
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_UP;
player1.pmovdir =-1;
player1.PPos .y -=2;
player1.PPos .x -=2;
rl.xgPos .x-=2;
rl.xgPos .y-=2;
if (player1.pmovidx >=1) player1.pmovidx +=player1.pmovdir ;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_UP)&&GetKeyboard()->GetCurrentStatus(DIK_RIGHT))
{
rl.index++;
if (rl.index>4)rl.index=0;
drl=1;
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_UP+MOVE_STATE_RIGHT;
player1.pmovdir =-1;
player1.PPos .y -=2;
player1.PPos .x +=2;
rl.xgPos .x+=2;
rl.xgPos .y-=2;
if (player1.pmovidx >=1) player1.pmovidx +=player1.pmovdir ;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_RIGHT))
{
rl.index++;
if (rl.index>4)rl.index=0;
drl=1;
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_RIGHT;
player1.PPos .x +=5;
rl.xgPos .x+=5;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_LEFT))
{
player1.playerstate =P_STATE_MOVE;
player1.PPos .x -=5;
rl.xgPos .x-=5;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_UP))
{
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_UP;
player1.pmovdir =-1;
player1.PPos .y -=5;
rl.xgPos .y-=5;
if (player1.pmovidx >=1) player1.pmovidx +=player1.pmovdir ;
}
else if (GetKeyboard()->GetCurrentStatus(DIK_DOWN))
{
player1.playerstate =P_STATE_MOVE;
player1.movestate =MOVE_STATE_DOWN;
player1.pmovdir =1;
player1.PPos .y +=5;
rl.xgPos .y+=5;
if (player1.pmovidx <16) player1.pmovidx +=player1.pmovdir ;
}
else
{
if (player1.pmovidx <8) player1.pmovdir =1;
else if (player1.pmovidx >8) player1.pmovdir =-1;
else if (player1.pmovidx =8) player1.pmovdir =0;
player1.pmovidx +=player1.pmovdir ;
}
player1.movestate =0;
while (player1.PPos.x<=0){player1.PPos.x+=5;rl.xgPos.x+=5;}
while (player1.PPos.y<=0){player1.PPos.y+=5;rl.xgPos.y+=5;}
while (player1.PPos.x>=640){player1.PPos.x-=5;rl.xgPos.x-=5;}
while (player1.PPos.y>=480){player1.PPos.y-=5;rl.xgPos.y-=5;}
if(GetKeyboard()->GetCurrentStatus(DIK_A))
{
static int i=0;
if (player1.bulltp==0)
{
if (i==8)
{
mbul2->Play();
i=0;
}
i++;
if (player1.bullpw==0)
{
bullet bul(32,8,0,player1.PPos .x+18,player1.PPos .y+15,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
}
if (player1.bullpw==1)
{
bullet bul(32,8,0,player1.PPos .x+18,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
}
if (player1.bullpw==2)
{
bullet bul(32,8,0,player1.PPos .x+18,player1.PPos .y+5,player1.bulltp,0,0,player1.bullpw);
bullet bul1(32,8,0,player1.PPos .x+18,player1.PPos .y+25,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
}
if (player1.bullpw==3)
{
bullet bul(32,8,0,player1.PPos .x+18,player1.PPos .y+5,player1.bulltp,0,0,player1.bullpw);
bullet bul1(32,8,0,player1.PPos .x+18,player1.PPos .y+25,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
}
}
if (player1.bulltp==1)
{
if (i==8)
{
mbul1->Play();
i=0;
if (player1.bullpw==0)
{
bullet bul(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
}
if (player1.bullpw==1)
{
bullet bul(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul1(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul2(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
player1.zd .push_back (bul2);
}
if (player1.bullpw==2)
{
bullet bul(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul1(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul2(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
player1.zd .push_back (bul2);
}
if (player1.bullpw==3)
{
bullet bul(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul1(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul2(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
bullet bul3(16,16,0,player1.PPos .x+34,player1.PPos .y+11,player1.bulltp,0,0,player1.bullpw);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
player1.zd .push_back (bul2);
player1.zd .push_back (bul3);
}
}
i++;
}
if (player1.bulltp==2)
{
if (i==4)
{
mbul3->Play();
i=0;
if (player1.bullpw==0)
{
bullet bul(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
player1.zd .push_back (bul);
}
if (player1.bullpw==1)
{
bullet bul(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul1(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul2(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
player1.zd .push_back (bul2);
}
if (player1.bullpw==2)
{
bullet bul(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul1(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul2(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul3(40,40,0,player1.PPos .x+40,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
player1.zd .push_back (bul2);
player1.zd .push_back (bul3);
}
if (player1.bullpw==3)
{
bullet bul(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul1(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul2(40,40,0,player1.PPos .x+10,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
bullet bul3(40,40,0,player1.PPos .x+40,player1.PPos .y-2,player1.bulltp,0,4,player1.bullpw,player1.PPos.x,player1.PPos.y);
player1.zd .push_back (bul);
player1.zd .push_back (bul1);
player1.zd .push_back (bul2);
player1.zd .push_back (bul3);
}
}
i++;
}
}
if(GetKeyboard()->GetCurrentStatus(DIK_S))
{
static int i=0;
if (i==5)
{
i=0;
if (player1.boom>0)
{
mboom1->Play();
mboom2->Play();
mboom3->Play();
mboom4->Play();
planeenemy.clear();
vxg.clear();
player1.zd.clear();
pub.clear();
player1.boom--;
xg xg1(100,90,45,34,11,6,0);
xg xg2(100,90,26,56,11,6,0);
xg xg3(100,90,134,112,11,6,0);
xg xg4(100,90,456,78,11,6,0);
xg xg5(80,95,234,167,8,6,1);
xg xg6(80,95,502,178,8,6,1);
xg xg7(80,95,333,213,8,6,1);
xg xg8(65,75,287,245,12,6,2);
xg xg9(65,75,607,285,12,6,2);
xg xg10(65,75,302,300,12,6,2);
xg xg11(54,50,555,312,10,10,3);
xg xg12(54,50,178,335,10,10,3);
xg xg13(40,42,325,378,16,16,4);
xg xg14(40,42,599,412,16,16,4);
xg xg15(48,48,11,399,11,11,5);
xg xg16(48,48,478,444,11,11,5);
xg xg17(48,32,315,467,16,8,6);
xg xg18(48,32,218,121,16,8,6);
xg xg19(48,32,543,199,16,8,6);
xg xg20(80,95,400,100,8,6,1);
xg xg21(80,95,415,123,8,6,1);
xg xg22(80,95,98,178,8,6,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -