📄 brutalfighting.c
字号:
pMe->m_iselectEnemyFootworkDisplacementY = 0;
pMe->m_iselectEnemyFootworkDirectionY = 1;
pMe->m_iscreenOffsetX=0;
pMe->m_iscreenOffsetY = 0;
pMe->m_iCustomFlag = 0;
pMe->m_iSystemTime = 0;
pMe->m_bGameover = FALSE;
pMe->m_bSound = TRUE;
pMe->m_pfmFileMgr = NULL;
BrutalFighting_initRecord(pMe);
}
/****************************************************************************************
* Name : GetRand_Int *
* Description : get random int *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
static int GetRand_Int(void)
{
int ret;
GETRAND((byte*)&ret,sizeof(int));
return ret;
}
/****************************************************************************************
* Name : BrutalFighting_Main_Start *
* Description : main statr examine Space *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
static void BrutalFighting_Main_Start(BrutalFighting* pMe)
{
uint32 pdwTotal;
//init in Main_Start scope
//declare source in this scope,then you free source at the end of function
pdwTotal = IFILEMGR_GetFreeSpace(pMe->m_pfmFileMgr, NULL);
if(pdwTotal < 1024)
// if(1)
{
pMe->m_emGameState = WIN_ID_NOSPACE;
}
else
{
pMe->m_emGameState = WIN_ID_MENU;
}
CALLBACK_Init(&pMe->m_cbMainTimer,(PFNNOTIFY)Main_Loop,pMe);
// Main_Loop(pMe);
ISHELL_SetTimerEx(pMe->pIShell , 3, &pMe->m_cbMainTimer);
}
/****************************************************************************************
* Name : BrutalFighting_SetUpRender *
* Description : draw setup Rander *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void BrutalFighting_initRecord(BrutalFighting* pMe)
{
ISHELL_CreateInstance(pMe->pIShell, AEECLSID_FILEMGR, (void**)&pMe->m_pfmFileMgr);
if(NULL != pMe->m_pfFile)
{
IFILE_Release(pMe->m_pfFile);
pMe->m_pfFile = NULL;
}
}
/****************************************************************************************
* Name : BrutalFighting_SetUpRender *
* Description : draw setup Rander *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void BrutalFighting_SetUpRender(BrutalFighting* pMe)
{
AEERect rect;
IDISPLAY_ClearScreen(pMe->pIDisplay);
IIMAGE_Draw(pMe->m_pImageSetupBG, 0, 0);
IDISPLAY_SetColor(pMe->pIDisplay, CLR_USER_TEXT, RGB_WHITE);
// if (0 == pMe->m_iSetupStatus)
// {
IIMAGE_Draw(pMe->m_pImageMenu[1],pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx,pMe->DeviceInfo.cyScreen/5*2);
IIMAGE_Draw(pMe->m_pImageMenu[1],pMe->DeviceInfo.cxScreen/4 * 3 ,pMe->DeviceInfo.cyScreen/5*2);
rect.x = pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 -1;
rect.y = pMe->DeviceInfo.cyScreen/5*2;
rect.dx = pMe->DeviceInfo.cyScreen/4 * 3 - pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 +12;
rect.dy = pMe->m_iFontHeight;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(255,0,0),IDF_RECT_FILL);
/* }
else
{
IIMAGE_Draw(pMe->m_pImageMenu[0],pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx,pMe->DeviceInfo.cyScreen/5 * 2);
IIMAGE_Draw(pMe->m_pImageMenu[0],pMe->DeviceInfo.cxScreen/4 * 3 ,pMe->DeviceInfo.cyScreen/5 * 2);
rect.x = pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 -1;
rect.y = pMe->DeviceInfo.cyScreen/5 * 2;
rect.dx = pMe->DeviceInfo.cyScreen/4 * 3 - pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 +2;
rect.dy = pMe->m_iFontHeight;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(144,0,0),IDF_RECT_FILL);
}*/
if (pMe->m_bSound)
{
DrawStringC(pMe->m_strSoundON,pMe->DeviceInfo.cyScreen/5*2,pMe);
}
else
{
DrawStringC(pMe->m_strSoundOFF,pMe->DeviceInfo.cyScreen/5*2,pMe);
}
/* if (1 == pMe->m_iSetupStatus)
{
IIMAGE_Draw(pMe->m_pImageMenu[1],pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx,pMe->DeviceInfo.cyScreen/5 * 3);
IIMAGE_Draw(pMe->m_pImageMenu[1],pMe->DeviceInfo.cxScreen/4 * 3 ,pMe->DeviceInfo.cyScreen/5 * 3);
rect.x = pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 -1;
rect.y = pMe->DeviceInfo.cyScreen/5 * 3;
rect.dx = pMe->DeviceInfo.cyScreen/4 * 3 - pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 +2;
rect.dy = pMe->m_iFontHeight;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(255,0,0),IDF_RECT_FILL);
}
else
{
IIMAGE_Draw(pMe->m_pImageMenu[0],pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx,pMe->DeviceInfo.cyScreen/5 * 3);
IIMAGE_Draw(pMe->m_pImageMenu[0],pMe->DeviceInfo.cxScreen/4 * 3 ,pMe->DeviceInfo.cyScreen/5 * 3);
rect.x = pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 -1;
rect.y = pMe->DeviceInfo.cyScreen/5 * 3;
rect.dx = pMe->DeviceInfo.cyScreen/4 * 3 - pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageMeunInfo.cx/2 +2;
rect.dy = pMe->m_iFontHeight;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(144,0,0),IDF_RECT_FILL);
}
if (pMe->m_bVibration)
{
DrawStringC(pMe->m_strVibractionON,pMe->DeviceInfo.cyScreen/5*3,pMe);
}
else
{
DrawStringC(pMe->m_strVibractionOFF,pMe->DeviceInfo.cyScreen/5*3,pMe);
}*/
DrawStringC(pMe->m_strC,pMe->DeviceInfo.cyScreen - pMe->m_iFontHeight,pMe);
DrawStringC(pMe->m_stMainMenu.m_MenuValue[1], 10, pMe);
}
/****************************************************************************************
* Name : SetUp_HandleEvent *
* Description : Handle events during in the WIN_ID_SETUP status *
* Parameter : BrutalFighting* pMe [IN] *
* AEEEvent eCode [IN] *
* uint16 wParam [IN] *
* uint32 dwParam [IN] *
* Return Value : boolean TRUE [OUT] *
****************************************************************************************/
static boolean SetUp_HandleEvent(BrutalFighting* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
switch(eCode)
{
case EVT_KEY:
switch(wParam)
{
/*case AVK_UP:
{
if (0 == pMe->m_iSetupStatus)
{
pMe->m_iSetupStatus = 1;
}
else
{
pMe->m_iSetupStatus--;
}
}
return(TRUE);
case AVK_DOWN:
{
if (1 == pMe->m_iSetupStatus)
{
pMe->m_iSetupStatus = 0;
}
else
{
pMe->m_iSetupStatus++;
}
}
return TRUE;*/
case AVK_SELECT:
{
/*switch(pMe->m_iSetupStatus)
{
case 0:
if (pMe->m_bSound)
{
pMe->m_bSound = FALSE;
}
else
{
pMe->m_bSound = TRUE;
}
break;
case 1:
if (pMe->m_bVibration)
{
pMe->m_bVibration = FALSE;
}
else
{
pMe->m_bVibration = TRUE;
}
break;
}*/
pMe->m_bSound = pMe->m_bSound ? FALSE : TRUE;
}
return(TRUE);
case AVK_CLR:
{
if (pMe->m_bPause)
{
pMe->m_emGameState = WIN_ID_STOP;
}
else
{
pMe->m_emGameState = WIN_ID_MENU;
}
// pMe->m_stMainMenu.m_Status = MENU_NEWGAME;
}
return(TRUE);
}
}
return TRUE;
}
/****************************************************************************************
* Name : BrutalFighting_SelectRender *
* Description : draw select Rander *
* Parameter : BrutalFighting* pMe [IN] *
* Return Value : NULL *
****************************************************************************************/
void BrutalFighting_SelectRender(BrutalFighting* pMe)
{
char chScore[10];
AECHAR aechScore[10];
AEERect rect;
int row,red=0,green=0,blue=0;
IDISPLAY_ClearScreen(pMe->pIDisplay);
rect.x = pMe->DeviceInfo.cxScreen/4;
rect.y = 0;
rect.dx = pMe->DeviceInfo.cxScreen/2;
rect.dy = pMe->DeviceInfo.cyScreen/3*2-10;
IIMAGE_Draw(pMe->m_pImageSetupBG, 0, 0);
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,MAKE_RGB(255,255,255),NULL,IDF_RECT_FRAME);
//background
red=pMe->m_iRedColor;
green=pMe->m_iGreenColor;
blue=pMe->m_iBlueColor;
for ( row = pMe->DeviceInfo.cyScreen/3*2-13; row >= 0; row--)
{
rect.x=pMe->DeviceInfo.cxScreen/4 + 1;
rect.y=0+1+row;
rect.dx=pMe->DeviceInfo.cxScreen/2-2;
rect.dy=1;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(red,green,blue),IDF_RECT_FILL);
red -= 5;
if (red < 0)
{
red = 0;
}
green -= 5;
if (green < 0)
{
green = 0;
}
blue -= 5;
if (blue < 0)
{
blue = 0;
}
}
// < >
if (pMe->m_ienemyNumber>0)
{
IIMAGE_Draw(pMe->m_pImagePrevious[1],
pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageNextInfo.cx,
pMe->DeviceInfo.cyScreen/3*2 - pMe->m_stImageNextInfo.cy -10);
if (pMe->m_ienemyNumber<NUMBER_OF_ENEMY)
{
IIMAGE_Draw(pMe->m_pImageNext[1],
pMe->DeviceInfo.cxScreen/4*3 ,
pMe->DeviceInfo.cyScreen/3*2 - pMe->m_stImageNextInfo.cy- 10);
}
}
else if (pMe->m_ienemyNumber<NUMBER_OF_ENEMY)
{
IIMAGE_Draw(pMe->m_pImageNext[1],
pMe->DeviceInfo.cxScreen/4*3 ,
pMe->DeviceInfo.cyScreen/3*2 - pMe->m_stImageNextInfo.cy- 10);
}
if (pMe->m_ienemyNextNumber < pMe->m_ienemyNumber)
{
IIMAGE_Draw(pMe->m_pImagePrevious[0],
pMe->DeviceInfo.cxScreen/4 - pMe->m_stImageNextInfo.cx,
pMe->DeviceInfo.cyScreen/3*2 - pMe->m_stImageNextInfo.cy -10);
}
else if (pMe->m_ienemyNextNumber > pMe->m_ienemyNumber)
{
IIMAGE_Draw(pMe->m_pImageNext[0],
pMe->DeviceInfo.cxScreen/4*3 ,
pMe->DeviceInfo.cyScreen/3*2 - pMe->m_stImageNextInfo.cy- 10);
}
//body head
rect.x = pMe->DeviceInfo.cxScreen/4+1;
rect.y = 2;
rect.dx = pMe->DeviceInfo.cxScreen/2 -2;
rect.dy = pMe->DeviceInfo.cyScreen/3 * 2-10-3 ;
IDISPLAY_SetClipRect(pMe->pIDisplay,&rect);
//body
IIMAGE_Draw(pMe->m_pImageG1,
pMe->m_iscreenOffsetX + pMe->m_ienemyPictureX + pMe->DeviceInfo.cxScreen/4 - SElECT_BODY_OFFSET_X+7,
pMe->m_iscreenOffsetY + pMe->m_ienemyPictureY + pMe->m_iselectEnemyFootworkDisplacementY - SElECT_BODY_OFFSET_Y);
//head
if ( 0 == pMe->m_ienemyNumber || 1 == pMe->m_ienemyNumber || NUMBER_OF_ENEMY == pMe->m_ienemyNumber)
{
IIMAGE_Draw(pMe->m_pImageNormal[0],
pMe->m_iscreenOffsetX + pMe->m_ienemyPictureX + 26+pMe->DeviceInfo.cxScreen/4 - SElECT_HEAD_OFFSET_X-2,
pMe->m_iscreenOffsetY + pMe->m_ienemyPictureY + pMe->m_iselectEnemyFootworkDisplacementY - SElECT_HEAD_OFFSET_Y+15);
}
else if ( 2 == pMe->m_ienemyNumber || 3 == pMe->m_ienemyNumber)
{
IIMAGE_Draw(pMe->m_pImageNormal[1],
pMe->m_iscreenOffsetX + pMe->m_ienemyPictureX + 26+pMe->DeviceInfo.cxScreen/4 - SElECT_HEAD_OFFSET_X-2,
pMe->m_iscreenOffsetY + pMe->m_ienemyPictureY + pMe->m_iselectEnemyFootworkDisplacementY - SElECT_HEAD_OFFSET_Y+15);
}
else if ( 4 == pMe->m_ienemyNumber || 5 == pMe->m_ienemyNumber)
{
IIMAGE_Draw(pMe->m_pImageNormal[2],
pMe->m_iscreenOffsetX + pMe->m_ienemyPictureX + 26+pMe->DeviceInfo.cxScreen/4 - SElECT_HEAD_OFFSET_X-2,
pMe->m_iscreenOffsetY + pMe->m_ienemyPictureY + pMe->m_iselectEnemyFootworkDisplacementY - SElECT_HEAD_OFFSET_Y+15);
}
rect.x =0;
rect.y = 0;
rect.dx =pMe->DeviceInfo.cxScreen;
rect.dy = pMe->DeviceInfo.cyScreen;
IDISPLAY_SetClipRect(pMe->pIDisplay,&rect);
//text
if (NUMBER_OF_ENEMY == pMe->m_ienemyNumber)
{
rect.x = pMe->DeviceInfo.cxScreen/10;
if (0 == pMe->m_iCustomFlag)
{
rect.y = pMe->DeviceInfo.cyScreen/3 * 2 -10 +2;
}
else
{
rect.y = pMe->DeviceInfo.cyScreen/3 * 2 -10 +3 +pMe->m_iFontHeight+2;
}
rect.dx = pMe->DeviceInfo.cxScreen/8 * 7;
rect.dy = pMe->m_iFontHeight ;
IDISPLAY_DrawRect(pMe->pIDisplay,&rect,NULL,MAKE_RGB(0,170,153),IDF_RECT_FILL);
IDISPLAY_DrawText(pMe->pIDisplay,AEE_FONT_NORMAL,pMe->m_strCoustom,-1,pMe->DeviceInfo.cxScreen/4 +1,pMe->DeviceInfo.cyScreen/3*2-10 - pMe->m_iFontHeight - 1,NULL,IDF_TEXT_TRANSPARENT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -