📄 bullhero.cpp
字号:
if( !CheckFile() )
{
GameState = ST_ERDIS;
SubState = 0;
FillRect( 0, 0, Width, 310, 255, 255, 255, TRUE );
aniCnt[0] = 0;
ISHELL_SetTimer( m_pIShell, m_TimeInterval, (PFNNOTIFY)MainApp::P_MainTimer, this );
return TRUE;
}
if(m_pBrewMedia==NULL)
m_pBrewMedia = new CBrewMedia();
ISHELL_SetTimer( m_pIShell, m_TimeInterval, (PFNNOTIFY)MainApp::P_MainTimer, this );
if( GameState == ST_LOGO )
{
aniCnt[0] = 0;
P_PlaySound( RS_LOGO );
}
else if( GameState == ST_INTRO )
P_PlaySound( RS_00 );
else if( GameState == ST_PROLOGUE )
P_PlaySound( RS_18 );
else if( GameState == ST_ENDING )
P_PlaySound( RS_01 );
else if( m_bSoundReplay )
{
P_PlaySound( m_SoundResId );
m_bSoundReplay = FALSE;
}
return TRUE;
case EVT_APP_START: // 矫累
P_StartGame();
FillRect(0, 0, Width, 310, 0, 0, 0, TRUE);
IDISPLAY_Update(m_pIDisplay);
ISHELL_SetTimer( m_pIShell, m_TimeInterval, (PFNNOTIFY)MainApp::P_MainTimer, this );
return TRUE;
case EVT_APP_STOP: // 场朝锭
ISHELL_CancelTimer( m_pIShell, NULL, this );
return TRUE;
case EVT_BUSY:
return FALSE;
case EVT_KEY_PRESS:
break;
case EVT_KEY_RELEASE:
break;
case EVT_KEY:
{
switch(GameState)
{
case ST_ERDIS:
K_ErDis(wParam);
break;
case ST_INTRO: // 牢飘肺
K_Intro(wParam);
break;
case ST_MENU: // 皋春
K_Menu(wParam);
break;
case ST_S2GAME:
K_S2Game(wParam);
break;
case ST_STARTGAME:
K_StartGame(wParam);
break;
case ST_TUTORIAL:
K_Tutorial(wParam);
break;
case ST_PROLOGUE:
K_Prologue(wParam);
break;
case ST_COACHMENU:
K_CoachMenu(wParam);
break;
case ST_ITEMSHOP:
K_ItemShop(wParam);
break;
case ST_SKILLSHOP:
K_SkillShop(wParam);
break;
case ST_GAMEUSING:
K_GameUsing(wParam);
break;
case ST_SKILLEXPLAIN:
K_SkillExplain(wParam);
break;
case ST_OPTION:
K_Option(wParam);
break;
case ST_ENDING:
K_Ending(wParam);
break;
}
return TRUE;
}
}
return TRUE;
}
void MainApp::P_MainTimer( MainApp *pMe )
{
pMe->m_sec = GET_TIMEMS()/1000;
pMe->FillRect(0, 0, pMe->Width, 310, 0, 0, 0, TRUE);
switch( pMe->GameState )
{
case ST_ERDIS:
pMe->D_ErDis();
break;
case ST_LOGO:
pMe->D_Logo();
break;
case ST_INTRO:
pMe->D_Intro();
break;
case ST_MENU:
pMe->D_Menu();
break;
case ST_S2GAME:
if(pMe->SubState != 11 && pMe->SubState != 16) pMe->P_S2Game();
pMe->D_S2Game();
break;
case ST_STARTGAME:
pMe->D_StartGame();
break;
case ST_TUTORIAL:
pMe->D_Tutorial();
break;
case ST_PROLOGUE:
pMe->D_Prologue();
break;
case ST_COACHMENU:
pMe->D_CoachMenu();
break;
case ST_ITEMSHOP:
pMe->D_ItemShop();
break;
case ST_SKILLSHOP:
pMe->D_SkillShop();
break;
case ST_GAMEUSING:
pMe->D_GameUsing();
break;
case ST_SKILLEXPLAIN:
pMe->D_SkillExplain();
break;
case ST_OPTION:
pMe->D_Option();
break;
case ST_ENDING:
pMe->D_Ending();
break;
case ST_GAMETEMP:
if( pMe->endgame == 1 )
{
pMe->endgame = 2;
ISHELL_CloseApplet( pMe->m_pIShell, FALSE );
}
break;
}
pMe->D_Memory();
IDISPLAY_Update(pMe->m_pIDisplay );
ISHELL_SetTimer( pMe->m_pIShell, pMe->m_TimeInterval, (PFNNOTIFY)MainApp::P_MainTimer, pMe );
}
void MainApp::P_StartGame()
{
if(GameState != ST_ERDIS)
T_Logo();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ST_ERDIS
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
boolean MainApp::CheckFile()
{
uint32 freeSpace, needSpace;
needSpace = 1000;
freeSpace = IFILEMGR_GetFreeSpace(m_pIfilemgr, NULL);
if( needSpace > freeSpace )
return FALSE;
return TRUE;
}
boolean MainApp::CheckMem()
{
int32 freeMem, checkHeapSize = 700000;
// 傈眉俊辑 荤侩茄 皋葛府剧阑 猾促.
freeMem = m_pRam - IHEAP_GetMemStats(m_pHeap);
// DBGPRINTF("dwRam:%d free:%d",m_pRam,freeMem);
if (freeMem > checkHeapSize)return TRUE;
return FALSE;
}
void MainApp::D_ErDis()
{
if( aniCnt[0] == 0 )
{
aniCnt[0] = 1;
P_StrLoad(STR_ERR00 + SubState);
aniCnt[0] = 2;
}
FillRect( 0, 0, Width, 320, 255, 255, 255, TRUE );
IDISPLAY_SetColor( m_pIDisplay, CLR_USER_TEXT, MAKE_RGB( 0, 0, 0) );
D_Ktext( hWidth - 115, hHeight - 84, m_MultiLine[0], AEE_FONT_BOLD, IDF_TEXT_TRANSPARENT );
D_Ktext( hWidth - 115, hHeight - 62, m_MultiLine[1], AEE_FONT_BOLD, IDF_TEXT_TRANSPARENT );
D_Ktext( hWidth - 115, hHeight - 40, m_MultiLine[2], AEE_FONT_BOLD, IDF_TEXT_TRANSPARENT );
D_Ktext( hWidth - 115, hHeight - 18, m_MultiLine[3], AEE_FONT_BOLD, IDF_TEXT_TRANSPARENT );
D_Ktext( hWidth - 115, hHeight + 4, m_MultiLine[4], AEE_FONT_BOLD, IDF_TEXT_TRANSPARENT );
}
void MainApp::K_ErDis(uint16 keyparam)
{
if( keyparam == AVK_SELECT )
{
GameState = ST_GAMETEMP;
endgame = 1;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ST_LOGO
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void MainApp::T_Logo( )
{
P_ImgLoad( &CImg->uimg[0], "bullimg.bar", IM_LOGO00, IMG_NORMAL );
P_ImgLoad( &CImg->uimg[1], "bullimg.bar", IM_LOGO01, IMG_NORMAL );
P_ImgLoad( &CImg->uimg[2], "bullimg.bar", IM_LOGO02, IMG_NORMAL );
P_ImgLoad( &CImg->uimg[3], "bullimg.bar", IM_LOGO03, IMG_NORMAL );
aniCnt[0] = 0;
GameState = ST_LOGO;
P_PlaySound( RS_LOGO );
}
void MainApp::D_Logo()
{
int i;
int temp;
short logo_move_xy[14][8] =
{
{-1,-1,-1,-1,-1,-1,-1,-1},
{87,45,118,138,-1,-1,-1,-1},
{87,74,114,138,-1,-1,-1,-1},
{87,79,118,138,-1,-1,-1,-1},
{87,66,114,138,-1,-1,-1,-1},
{87,79,118,138,-1,-1,-1,-1},
{87,74,115,138,-1,-1,-1,-1},
{87,79,119,138,-1,-1,-1,-1},
{87,79,119,138,-5,150,-1,-1},
{87,79,119,138,25,150,-1,-1},
{87,79,119,138,58,150,-1,-1},
{87,79,119,138,58,150,118,174},
{87,79,119,138,58,150,88,174},
{87,79,119,138,58,150,58,174} //13 frame
};
FillRect( 0, 0, Width, 310, 255, 255, 255, TRUE );
for( i = 3; i >= 0; --i )
{
if( aniCnt[0] > 13 )
temp = 13;
else
temp = aniCnt[0];
if( logo_move_xy[aniCnt[0]][i*2] != -1 )
{
CImg->K_Draw( logo_move_xy[temp][i*2], logo_move_xy[temp][i*2+1], CImg->uimg[i], IMLEFT, AEE_RO_TRANSPARENT );
}
}
if( ++aniCnt[0] > 16 )
{
P_StopSound();
GameState = ST_GAMETEMP;
T_Intro();
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ST_INTRO
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void MainApp::T_Intro()
{
ImageRelease(0);
ImageLoad(0);
m_Keychk = aniCnt[0] = aniCnt[1] = 0;
P_PlaySound( RS_00 );
GameState = ST_INTRO;
}
void MainApp::D_Intro()
{
if(aniCnt[0] <= 4)
{
if(aniCnt[0] == 1)
CImg->K_Draw(Width - 4, hHeight - CImg->GetImgHeight(CImg->uimg[0])/2, CImg->uimg[0], IMLEFT, AEE_RO_TRANSPARENT);
else if(aniCnt[0] == 2)
CImg->K_Draw(hWidth + 10, hHeight - CImg->GetImgHeight(CImg->uimg[0])/2, CImg->uimg[0], IMLEFT, AEE_RO_TRANSPARENT);
else if(aniCnt[0] == 3)
CImg->K_Draw(hWidth - 28, hHeight - CImg->GetImgHeight(CImg->uimg[1])/2, CImg->uimg[1], IMLEFT, AEE_RO_TRANSPARENT);
else if(aniCnt[0] == 4)
CImg->K_Draw(hWidth - 76, hHeight - CImg->GetImgHeight(CImg->uimg[2])/2, CImg->uimg[2], IMLEFT, AEE_RO_TRANSPARENT);
}
else if(aniCnt[0] > 4 && aniCnt[0] < 10)
{
FillRect(0, 0, Width, Height, 255, 219, 85, TRUE);
CImg->K_Draw(hWidth, hHeight - CImg->GetImgHeight(CImg->uimg[10])/2, CImg->uimg[10], IMTOPCENTER, AEE_RO_TRANSPARENT);
FillRect(0, 0, Width, hHeight - 96, 0, 0, 0, TRUE);
FillRect(0, hHeight - 97 + CImg->GetImgHeight(CImg->uimg[4]), Width, hHeight, 0, 0, 0, TRUE);
if(aniCnt[0] == 6)
{
CImg->K_Draw(Width - 83, hHeight - 97 + 14, CImg->uimg[3], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(- 69, hHeight - 97, CImg->uimg[4], IMLEFT, AEE_RO_TRANSPARENT);
}
else if(aniCnt[0] == 7)
{
CImg->K_Draw(Width - 83 - 2, hHeight - 97 + 14, CImg->uimg[3], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(- 69 + 20, hHeight - 97, CImg->uimg[4], IMLEFT, AEE_RO_TRANSPARENT);
}
else if(aniCnt[0] == 8)
{
CImg->K_Draw(Width - 83 - 9, hHeight - 97 + 14, CImg->uimg[3], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(- 69 + 43, hHeight - 97, CImg->uimg[4], IMLEFT, AEE_RO_TRANSPARENT);
}
else if(aniCnt[0] == 9)
{
CImg->K_Draw(Width - 83 - 21, hHeight - 97 + 14, CImg->uimg[3], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(- 69 + 69, hHeight - 97, CImg->uimg[4], IMLEFT, AEE_RO_TRANSPARENT);
}
}
else if(aniCnt[0] > 9 && aniCnt[0] < 14)
{
for(int i = 0; i < Width; i++)
CImg->K_Draw(i, hHeight - 96, CImg->uimg[7], IMLEFT, AEE_RO_TRANSPARENT);
if(aniCnt[0] == 11)
{
CImg->K_Draw(- 10, hHeight - 97, CImg->uimg[5], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(Width - CImg->GetImgWidth(CImg->uimg[6]) + 9, hHeight + 4, CImg->uimg[6], IMLEFT, AEE_RO_TRANSPARENT);
}
else if(aniCnt[0] == 12)
{
CImg->K_Draw(- 10 + 4, hHeight - 97, CImg->uimg[5], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(Width - CImg->GetImgWidth(CImg->uimg[6]) + 9 - 7, hHeight + 4, CImg->uimg[6], IMLEFT, AEE_RO_TRANSPARENT);
}
else if(aniCnt[0] == 13)
{
CImg->K_Draw(- 10 + 10, hHeight - 97, CImg->uimg[5], IMLEFT, AEE_RO_TRANSPARENT);
CImg->K_Draw(Width - CImg->GetImgWidth(CImg->uimg[6]) + 9 - 9, hHeight + 4, CImg->uimg[6], IMLEFT, AEE_RO_TRANSPARENT);
}
}
else if( aniCnt[0] == 14 )
{
FillRect(0, hHeight - 101, Width, 202, 219, 219, 255, TRUE);
CImg->K_Draw(hWidth, 0, CImg->mimg[5], IMTOPCENTER, AEE_RO_TRANSPARENT);
CImg->K_Draw(hWidth, hHeight - CImg->GetImgHeight(CImg->mimg[4])/2, CImg->mimg[4], IMTOPCENTER, AEE_RO_TRANSPARENT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -