📄 game.cpp
字号:
#include "stdafx.h"
#include "resource.h"
#include "define.h"
#include "game.h"
//////////////////////////////////////////////////////////////////////////////
//
bool CGame::Initialize(HWND hWnd,LPCSTR szBitmap,LPCSTR szSourceWaves[STAGE_MAX_NUM][DSOUND_MAX_NUM],int nSoundNum[STAGE_MAX_NUM],int nStageNum)
{
//record resources:
if(nStageNum>STAGE_MAX_NUM)return false;
for(int i=0;i<nStageNum;i++)
{
if(nSoundNum[i]>DSOUND_MAX_NUM)return false;
for(int j=0;j<nSoundNum[i];j++)
m_szSourceWaves[i][j]=szSourceWaves[i][j];
}
//initialize the input engine:
if(!m_DI.Initialize(hWnd))
return false;
//initialize the graphic engine:
if(!m_DD.Initialize(hWnd,SCREEN_WIDTH,SCREEN_HEIGHT,COLOR_DEPTH,szBitmap,RGB(0,0,0),RGB(0,0,0)))
return false;
//initialize the sound engine:
//if(!
m_DS.Initialize(hWnd,szSourceWaves[0],nSoundNum[0]);
// )
//return false;
//Initialize the game procedure parameters:
m_luTime=0;
m_bPaused=false;
m_nSpeed=10;
m_nScorePlayer1=0;
m_nScorePlayer2=0;
m_bBeginPage=true;
m_pBeginPage=new CBeginPage(&m_DD,szBitmap,&m_DI,&m_DS,m_szSourceWaves[0],m_nSoundNum[0]);
m_bStage1st=false;
m_pStage1st=NULL;
//m_bStage1st=true;
//m_pStage1st=new CStage1st(&m_DD,szBitmap,&m_DI);
m_bScorePage=false;
m_pScorePage=NULL;
return true;
}
//////////////////////////////////////////////////////////////////////////////
//
void CGame::Run(MSG msg)
{
//Direct input取得输入状态;
m_DI.UpDateInputState();
//调节游戏速度:
if(m_luTime%15==0)//减低灵敏度;
{
if(m_DI.m_bKeyDown[DIK_MINUS]&&m_nSpeed<16)m_nSpeed++;
if(m_DI.m_bKeyDown[DIK_EQUALS]&&m_nSpeed>5)m_nSpeed--;
}
///////////////////////////////////////////////////////////////////////////////////////
if(m_pBeginPage!=NULL)
{
m_pBeginPage->Run();
m_pBeginPage->Show();
m_pBeginPage->m_luTime++;
//m_DS.Play(0);
switch(m_DI.m_dwMouse)
{
case DI_MOUSE_MOVE_X:
case DI_MOUSE_MOVE_Y:break;
case DI_MOUSE_LEFT_DOWN:break;
case DI_MOUSE_LEFT_UP:break;
}
if(m_DI.m_bKeyDown[DIK_RETURN]||m_DI.m_bKeyDown[DIK_SPACE])
{
delete m_pBeginPage;
m_pBeginPage=NULL;
m_nScorePlayer1=0;
LPCSTR szWaves[DSOUND_MAX_NUM];
szWaves[0]="main.wav";
m_pStage1st=new CStage1st(&m_DD,(LPCSTR)IDB_SOURCE,&m_DI,&m_DS,m_szSourceWaves[1],m_nSoundNum[1]);
m_pStage1st->SetScore1(m_nScorePlayer1);//初始化player1的分数;
}
return;
}
////////////////////////////////////////////////////////////////////////////////////////
if(m_pStage1st!=NULL)
{
bool bRun=m_pStage1st->Run();
m_pStage1st->Show();
m_pStage1st->m_luTime++;
//m_DS.Play(0);
/*
if(m_pStage1st->m_bCancel)
{
delete m_pStage1st;
m_pStage1st=NULL;
m_pScorePage= new CScorePage(&m_DD,(LPTSTR)IDB_BEGIN,&m_DI);
}*/
if(m_DI.m_bKeyDown[DIK_ESCAPE]||(bRun==false))
{
m_nScorePlayer1=m_pStage1st->GetScore1();//记录下player1的分数;
delete m_pStage1st;
m_pStage1st=NULL;
m_pScorePage= new CScorePage(&m_DD,(LPTSTR)IDB_END,&m_DI,&m_DS,m_szSourceWaves[2],m_nSoundNum[2]);
m_pScorePage->SetScore1(m_nScorePlayer1);//传递player1的分数给记分页面;
}
return;
}
////////////////////////////////////////////////////////////////////////////////////////////
if(m_pScorePage!=NULL)
{
m_pScorePage->Run();
m_pScorePage->Show();
m_pScorePage->m_luTime++;
//m_DS.Play(0);
if(m_DI.m_bKeyDown[DIK_RETURN]&&(!m_pScorePage->m_bLocked))
{
delete m_pScorePage;
m_pScorePage=NULL;
m_pBeginPage=new CBeginPage(&m_DD,(LPTSTR)IDB_BEGIN,&m_DI,&m_DS,m_szSourceWaves[0],m_nSoundNum[0]);
}
return;
}
return;
}
///////////////////////////////////////////////////////////////////////////////////////////
//
void CGame::Show()
{
return;
}
////////////////////////////////////////////////////////////////////////////////
//
void CGame::Destroy()
{
if(m_pBeginPage!=NULL)delete m_pBeginPage;
if(m_pStage1st!=NULL)delete m_pStage1st;
if(m_pScorePage!=NULL)delete m_pScorePage;
m_DD.Destroy();
m_DI.Destroy();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -