📄 brutalfighting.c
字号:
rect.x = pMe->DeviceInfo.cxScreen - SELECT_OFFSET - SELECT_RECT_X +1;
rect.y = pMe->DeviceInfo.cyScreen/4 * 3 -SELECT_RECT_HIGHT + 1-12;
rect.dx =pMe->m_iCustomStr * SELECT_RECT_X/10 -2;
rect.dy = SELECT_RECT_Y-2;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(255,0,0),IDF_RECT_FILL);
rect.x = pMe->DeviceInfo.cxScreen - SELECT_OFFSET - SELECT_RECT_X +1;
rect.y = pMe->DeviceInfo.cyScreen/4 *3 -SELECT_RECT_HIGHT+2+pMe->m_iFontHeight+1-12;
rect.dx = pMe->m_iCustomFlee/10 * SELECT_RECT_X/10-2;;
rect.dy = SELECT_RECT_Y-2;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(255,0,0),IDF_RECT_FILL);
}
else
{
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,pMe->m_strLevel,-1,pMe->DeviceInfo.cxScreen/4 +1,pMe->DeviceInfo.cyScreen/3*2-10 - pMe->m_iFontHeight - 1,NULL,IDF_TEXT_TRANSPARENT);
SPRINTF(chScore, "%d", NUMBER_OF_ENEMY);
STR_TO_WSTR(chScore , aechScore, 10);
//draw 6
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,aechScore,-1,pMe->DeviceInfo.cxScreen/4 * 3 -2 -IDISPLAY_MeasureText(pMe->pIDisplay,AEE_FONT_NORMAL,aechScore),
pMe->DeviceInfo.cyScreen/3*2-10 - pMe->m_iFontHeight - 1,NULL,IDF_TEXT_TRANSPARENT);
//draw /
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,pMe->m_strDiagonal,-1,pMe->DeviceInfo.cxScreen/3 * 2-2,pMe->DeviceInfo.cyScreen/3*2-10 - pMe->m_iFontHeight - 1,NULL,IDF_TEXT_TRANSPARENT);
//draw enemy_number
SPRINTF(chScore, "%d", pMe->m_ienemyNumber +1);
STR_TO_WSTR(chScore , aechScore, 10);
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,aechScore,-1,pMe->DeviceInfo.cxScreen/3 * 2-IDISPLAY_MeasureText(pMe->pIDisplay,AEE_FONT_NORMAL,aechScore)-2,
pMe->DeviceInfo.cyScreen/3*2-10 - pMe->m_iFontHeight - 1,NULL,IDF_TEXT_TRANSPARENT);
//fill str flee
rect.x = pMe->DeviceInfo.cxScreen - SELECT_OFFSET - SELECT_RECT_X +1;
rect.y = pMe->DeviceInfo.cyScreen/3 *2 -SELECT_RECT_HIGHT+1;
rect.dx = pMe->m_iEnemyStr[pMe->m_ienemyNumber] * SELECT_RECT_X/10-2;
rect.dy = SELECT_RECT_Y-2;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(255,0,0),IDF_RECT_FILL);
rect.x = pMe->DeviceInfo.cxScreen - SELECT_OFFSET - SELECT_RECT_X +1;
rect.y = pMe->DeviceInfo.cyScreen/3*2 -SELECT_RECT_HIGHT+2+pMe->m_iFontHeight+1;
rect.dx = pMe->m_iEnemyFlee[pMe->m_ienemyNumber]/10 * SELECT_RECT_X/10-2;
rect.dy = SELECT_RECT_Y-2;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(255,0,0),IDF_RECT_FILL);
}
rect.dy = pMe->DeviceInfo.cyScreen/3*2-10;
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,pMe->m_strStrength,-1,SELECT_OFFSET, rect.dy+2,NULL,IDF_TEXT_TRANSPARENT);
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,pMe->m_strFlee,-1,SELECT_OFFSET, rect.dy+pMe->m_iFontHeight+2+2,NULL,IDF_TEXT_TRANSPARENT);
if ( NUMBER_OF_ENEMY != pMe->m_ienemyNumber)
{
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,pMe->m_strRecord,-1,SELECT_OFFSET, rect.dy+pMe->m_iFontHeight*2+2+2+2,NULL,IDF_TEXT_TRANSPARENT);
}
if (0 == pMe->m_ienemyNumber)
{
DrawTime(pMe,pMe->istruHistory.ione,pMe->DeviceInfo.cxScreen/2 +4 ,rect.dy+pMe->m_iFontHeight*2+2+2+2);
}
else if ( 1 == pMe->m_ienemyNumber)
{
DrawTime(pMe,pMe->istruHistory.ione1,pMe->DeviceInfo.cxScreen/2 +4 ,rect.dy+pMe->m_iFontHeight*2+2+2+2);
}
else if ( 2 == pMe->m_ienemyNumber)
{
DrawTime(pMe,pMe->istruHistory.ione2,pMe->DeviceInfo.cxScreen/2 +4 ,rect.dy+pMe->m_iFontHeight*2+2+2+2);
}
else if ( 3 == pMe->m_ienemyNumber)
{
DrawTime(pMe,pMe->istruHistory.ione3,pMe->DeviceInfo.cxScreen/2 +4 ,rect.dy+pMe->m_iFontHeight*2+2+2+2);
}
else if ( 4 == pMe->m_ienemyNumber)
{
DrawTime(pMe,pMe->istruHistory.ione4,pMe->DeviceInfo.cxScreen/2 +4 ,rect.dy+pMe->m_iFontHeight*2+2+2+2);
}
else if ( 5 == pMe->m_ienemyNumber)
{
DrawTime(pMe,pMe->istruHistory.ione5,pMe->DeviceInfo.cxScreen/2 +4 ,rect.dy+pMe->m_iFontHeight*2+2+2+2);
}
else if ( NUMBER_OF_ENEMY == pMe->m_ienemyNumber)
{
}
//Rect FRAME
rect.x = pMe->DeviceInfo.cxScreen - SELECT_OFFSET - SELECT_RECT_X ;
rect.y = pMe->DeviceInfo.cyScreen/4*3 -SELECT_RECT_HIGHT-12;
rect.dx = SELECT_RECT_X;
rect.dy = SELECT_RECT_Y;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,MAKE_RGB(255,255,255),NULL,IDF_RECT_FRAME);
rect.y = pMe->DeviceInfo.cyScreen/4*3 -SELECT_RECT_HIGHT-10+pMe->m_iFontHeight;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,MAKE_RGB(255,255,255),NULL,IDF_RECT_FRAME);
}
/****************************************************************************************
* Name : RandomBackground *
* Description : random background *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void RandomBackground(BrutalFighting* pMe)
{
pMe->m_iRedColor=ABS(GetRand_Int()%255);
pMe->m_iGreenColor=ABS(GetRand_Int()%255);
pMe->m_iBlueColor=ABS(GetRand_Int()%255);
}
/****************************************************************************************
* Name : Select_HandleEvent *
* Description : Handle events during in the WIN_ID_SELECT status *
* Parameter : BrutalFighting* pMe [IN] *
* AEEEvent eCode [IN] *
* uint16 wParam [IN] *
* uint32 dwParam [IN] *
* Return Value : boolean TRUE [OUT] *
****************************************************************************************/
static boolean Select_HandleEvent(BrutalFighting* pMe, AEEEvent eCode,
uint16 wParam, uint32 dwParam)
{
switch(eCode)
{
case EVT_KEY:
switch(wParam)
{
case AVK_LEFT:
{
PreviousEnemy(pMe);
}
return(TRUE);
case AVK_RIGHT:
{
if (pMe->m_ienemyNumber==NUMBER_OF_ENEMY)
{
if (0 == pMe->m_iCustomFlag)
{
if (pMe->m_iCustomStr < 10)
{
pMe->m_iCustomStr+=1;
}
else
{
pMe->m_iCustomStr = 0;
}
}
else
{
if (pMe->m_iCustomFlee <100)
{
pMe->m_iCustomFlee+=10;
}
else
{
pMe->m_iCustomFlee = 0;
}
}
}
else
{
NextEnemy(pMe);
}
}
return (TRUE);
case AVK_UP:
{
if (pMe->m_ienemyNumber==NUMBER_OF_ENEMY)
{
if (1 == pMe->m_iCustomFlag)
{
pMe->m_iCustomFlag = 0;
}
}
}
return(TRUE);
case AVK_DOWN:
{
if (pMe->m_ienemyNumber==NUMBER_OF_ENEMY)
{
if (0 == pMe->m_iCustomFlag)
{
pMe->m_iCustomFlag = 1;
}
}
}
return(TRUE);
case AVK_SELECT:
{
if (pMe->m_bSound)
{
BruatlFighting_Paly_Music(pMe);
}
BrutalFighting_InitGame(pMe);
pMe->m_emGameState = WIN_ID_GAME;
}
return(TRUE);
case AVK_CLR:
{
pMe->m_bGamePause = FALSE;
pMe->m_bPause = FALSE;
pMe->m_stMainMenu.m_Status = MENU_NEWGAME;
pMe->m_emGameState = WIN_ID_MENU;///
}
return(TRUE);
}
}
return TRUE;
}
/****************************************************************************************
* Name : PreviousEnemy *
* Description : select enemy previous enemy *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void PreviousEnemy(BrutalFighting* pMe)
{
if (pMe->m_ienemyNumber > 0)
{
pMe->m_ienemyNextNumber = (byte)(pMe->m_ienemyNumber - 1);
RandomBackground(pMe);
if (pMe->m_ienemyNumber == NUMBER_OF_ENEMY)
{
// cancel current custom status and load saved custom status
pMe->m_iEnemyStr[NUMBER_OF_ENEMY] = pMe->m_iCustomStr;
pMe->m_iEnemyFlee[NUMBER_OF_ENEMY] = pMe->m_iCustomFlee;
pMe->m_iEnemyScore[NUMBER_OF_ENEMY] = pMe->m_iCustomScore;
}
}
}
/****************************************************************************************
* Name : NextEnemy *
* Description : select enemy next enemy *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void NextEnemy(BrutalFighting* pMe)
{
if (pMe->m_ienemyNumber < NUMBER_OF_ENEMY)
{
pMe->m_ienemyNextNumber = (byte)(pMe->m_ienemyNumber + 1);
RandomBackground(pMe);
if (pMe->m_ienemyNumber == NUMBER_OF_ENEMY)
{
pMe->m_iEnemyStr[NUMBER_OF_ENEMY] = pMe->m_iCustomStr;
pMe->m_iEnemyFlee[NUMBER_OF_ENEMY] = pMe->m_iCustomFlee;
pMe->m_iEnemyScore[NUMBER_OF_ENEMY] = pMe->m_iCustomScore;
}
}
}
/****************************************************************************************
* Name : Select_Enemy *
* Description : select enemy action *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void Select_Enemy(BrutalFighting* pMe)
{
if (pMe->m_ienemyNextNumber < pMe->m_ienemyNumber)
{
pMe->m_iselectEnemyFootworkDisplacementY = 0;
pMe->m_ienemyPictureX += PICTURE_STEP_X;
pMe->m_ienemyPictureY = PICTURE_OFFSET_Y;
if (pMe->m_ienemyPictureX >= PICTURE_OFFSET_X + pMe->m_stImageG1Info.cx)
{
if (pMe->m_ienemyNextNumber == -1)
{
pMe->m_ienemyNextNumber = NUMBER_OF_ENEMY;
}
pMe->m_ienemyNumber = pMe->m_ienemyNextNumber;
pMe->m_ienemyPictureX = PICTURE_OFFSET_X - pMe->m_stImageG1Info.cx;
}
}
else if (pMe->m_ienemyNextNumber > pMe->m_ienemyNumber)
{
pMe->m_iselectEnemyFootworkDisplacementY = 0;
pMe->m_ienemyPictureX -= PICTURE_STEP_X;
pMe->m_ienemyPictureY = PICTURE_OFFSET_Y;
if (pMe->m_ienemyPictureX <= PICTURE_OFFSET_X - pMe->m_stImageG1Info.cx)
{
if (pMe->m_ienemyNextNumber == NUMBER_OF_ENEMY + 1)
{
pMe->m_ienemyNextNumber = 0;
}
pMe->m_ienemyNumber = pMe->m_ienemyNextNumber;
pMe->m_ienemyPictureX = PICTURE_OFFSET_X + pMe->m_stImageG1Info.cx;
}
}
else if (pMe->m_ienemyNextNumber == pMe->m_ienemyNumber)
{
if (pMe->m_ienemyPictureX < PICTURE_OFFSET_X)
{
pMe->m_iselectEnemyFootworkDisplacementY = 0;
pMe->m_ienemyPictureX += PICTURE_STEP_X;
pMe->m_ienemyPictureY = PICTURE_OFFSET_Y;
if (pMe->m_ienemyPictureX > PICTURE_OFFSET_X)
{
pMe->m_ienemyPictureX = PICTURE_OFFSET_X;
}
}
else if (pMe->m_ienemyPictureX > PICTURE_OFFSET_X)
{
pMe->m_iselectEnemyFootworkDisplacementY = 0;
pMe->m_ienemyPictureX -= PICTURE_STEP_X;
pMe->m_ienemyPictureY = PICTURE_OFFSET_Y;
if (pMe->m_ienemyPictureX < PICTURE_OFFSET_X)
{
pMe->m_ienemyPictureX = PICTURE_OFFSET_X;
}
}
else // footwork
{
if (pMe->m_ienemyNextNumber == pMe->m_ienemyNumber)
{
pMe->m_iselectEnemyFootworkDisplacementY += pMe->m_iselectEnemyFootworkDirectionY;
if (pMe->m_iselectEnemyFootworkDirectionY < 0 && pMe->m_iselectEnemyFootworkDisplacementY < SELECT_ENEMY_FOOTWORK_Y1)
{
pMe->m_iselectEnemyFootworkDisplacementY = SELECT_ENEMY_FOOTWORK_Y1 - SELECT_ENEMY_FOOTWORK_STEP_Y;
pMe->m_iselectEnemyFootworkDirectionY = SELECT_ENEMY_FOOTWORK_STEP_Y;
}
else if (pMe->m_iselectEnemyFootworkDirectionY > 0 && pMe->m_iselectEnemyFootworkDisplacementY > SELECT_ENEMY_FOOTWORK_Y2)
{
pMe->m_iselectEnemyFootworkDisplacementY = SELECT_ENEMY_FOOTWORK_Y2 + SELECT_ENEMY_FOOTWORK_STEP_Y;
pMe->m_iselectEnemyFootworkDirectionY = SELECT_ENEMY_FOOTWORK_STEP_Y * -1;
}
pMe->m_ienemyPictureY = PICTURE_OFFSET_Y + pMe->m_iselectEnemyFootworkDisplacementY;
}
}
}
}
/****************************************************************************************
* Name : Adout_LoadHtmlData *
* Description : load abouthtml data *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : boolean *
****************************************************************************************/
boolean Adout_LoadHtmlData(BrutalFighting* pMe)
{
char szFilename[128];
AEEFileInfo file_info;
SPRINTF(szFilename,"about.htm");
if(ISHELL_CreateInstance(pMe->pIShell,AEECLSID_HTML,
(void **)&(pMe->m_pabout))!=SUCCESS)
{
return FALSE;
}
if(ISHELL_CreateInstance(pMe->pIShell, AEECLSID_FILEMGR,
(void **)&(pMe->m_pfaboutFileMgr))!=SUCCESS)
{
if(pMe->m_pabout)
IHTMLVIEWER_Release(pMe->m_pabout);
return FALSE;
}
// IHTMLVIEWER_SetType(m_pHtml,"text/html;charset=g
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -