📄 hotblood.c
字号:
pme->ply[i].PlayerState = ES_STONE_RUIN;
}
}
}
}
}
if( pme->pigLiveOK ) {
if( pme->ply[0].yLevel == pme->pigYLevel ) {
if( pme->ply[0].boundaryX >= pme->pigX ) {
if( pme->howmanyPig >= 21 ) {
IIMAGE_SetOffset(pme->m_pIBackGround, pme->pigX, -(pme->BackGroundY) + 46 + pme->pigYLevel * 5);
IIMAGE_SetDrawSize(pme->m_pIBackGround, 33, 14);
IIMAGE_Draw(pme->m_pIBackGround, pme->pigX, pme->O_PlayerY + 46 + pme->pigYLevel * 5);
pme->pigLiveOK = FALSE;
pme->howmanyPig = 0;
if( pme->ply[0].HP + 160 > CHO_ENERGY ) pme->ply[0].HP = CHO_ENERGY;
else pme->ply[0].HP += 160;
}else if( pme->howmanyPig >= 11 ) {
IIMAGE_SetOffset(pme->m_pIBackGround, pme->pigX, -(pme->BackGroundY) + 46 + pme->pigYLevel * 5);
IIMAGE_SetDrawSize(pme->m_pIBackGround, 23, 14);
IIMAGE_Draw(pme->m_pIBackGround, pme->pigX, pme->O_PlayerY + 46 + pme->pigYLevel * 5);
pme->pigLiveOK = FALSE;
pme->howmanyPig = 0;
if( pme->ply[0].HP + 80 > CHO_ENERGY ) pme->ply[0].HP = CHO_ENERGY;
else pme->ply[0].HP += 80;
}
}
}
}
}
static void enemyManager(IApplet * pi)
{
int i;
int rnd = 0;
int tmp = 0;
int energy = 0;
int countLive = 0;
boolean appStop = FALSE;
HotBloodApp * pme = (HotBloodApp *)pi;
for( i = 1;i < 5;i++ ) {
if( pme->ply[i].liveOK == FALSE ) countLive++;
else tmp = pme->ply[i].type;
}
if( (tmp == 4 || tmp == 5 || tmp == 6) && countLive == 3 ) countLive = 4;
if( pme->enemyLineUp == pme->appInnerStage[pme->stage - 1] && countLive == 4 && !pme->onceBackGround ) {
pme->onceBackGround = TRUE;
appStop = TRUE;
pme->GOflag = FALSE;
pme->GameState = GS_INNER_STAGE;
}
//焊胶啊 殿厘窍绊 唱辑 峦 乐促 瘤铂捞霸 茄促.
if( pme->bossapp ) {
if( pme->delay_Boss < 5 ) {
pme->delay_Boss++;
}else {
pme->delay_Boss = 0;
pme->bossapp = FALSE;
pme->bossOn = TRUE;
pme->bossPage = 0;
pme->enemyMgr = TRUE;
switch(pme->stage) {
case 1:
if( pme->soundOn ) {
PlayMMF(pi, 2);
}
pme->GameState = GS_BOSS_ST1;
break;
case 2:
if( pme->soundOn ) {
PlayMMF(pi, 2);
}
pme->GameState = GS_BOSS_ST2;
break;
case 3:
if( pme->soundOn ) {
PlayMMF(pi, 2);
}
pme->GameState = GS_BOSS_ST3;
break;
}
}
}
if( countLive == 4 && pme->enemyLineUp < 14 && !appStop ) {
if( pme->timeforEnemy > 4 ) {
pme->timeforEnemy = 0;
if( pme->enemyLineUp == pme->appBoss[pme->stage - 1] && !pme->bossOn && !pme->onceBoss ) {
switch( pme->stage ) {
case 1:
//鉴快档 捞固瘤肺靛.
for( i = 52;i < 64;i++ ) {
if( (pme->m_pIPly[i] = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, (int16)(i + 1))) == NULL ) return;
IIMAGE_SetParm(pme->m_pIPly[i], IPARM_ROP, AEE_RO_TRANSPARENT, 0);
}
break;
case 2:
// 芒捍 捞固瘤 秦力.
for( i = 30;i < 40;i++ ) {
if( pme->m_pIPly[i] != NULL ) {
IIMAGE_Release(pme->m_pIPly[i]);
pme->m_pIPly[i] = NULL;
}
}
// 窍饶篮 捞固瘤 肺靛.
for( i = 64;i < 76;i++ ) {
if( (pme->m_pIPly[i] = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, (int16)(i + 1))) == NULL ) return;
IIMAGE_SetParm(pme->m_pIPly[i], IPARM_ROP, AEE_RO_TRANSPARENT, 0);
}
break;
case 3:
// 芒捍 捞固瘤 秦力.
for( i = 30;i < 40;i++ ) {
if( pme->m_pIPly[i] != NULL ) {
IIMAGE_Release(pme->m_pIPly[i]);
pme->m_pIPly[i] = NULL;
}
}
// 厘钦 捞固瘤 肺爹.
for( i = 76;i < 88;i++ ) {
if( (pme->m_pIPly[i] = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, (int16)(i + 1))) == NULL ) return;
IIMAGE_SetParm(pme->m_pIPly[i], IPARM_ROP, AEE_RO_TRANSPARENT, 0);
}
break;
}
pme->bossapp = TRUE;
}
//焊胶啊 50% 巢栏搁 唱坷霸 窍扁 困秦 救唱坷霸 窍绰 敲贰弊..
if( pme->enemyMgr && (pme->enemyLineUp == pme->appBoss[pme->stage - 1] + 1) ) {
if( pme->stage == 1 ) energy = STAGE1_ENERGY;
else if( pme->stage == 2 ) energy = STAGE2_ENERGY;
else energy = STAGE3_ENERGY;
if( pme->ply[1].HP <= (energy / 2) && pme->ply[1].HP != 0 ) {
//pme->enemyMgr = FALSE;
pme->ply[2].liveOK = FALSE;
pme->ply[3].liveOK = FALSE;
pme->ply[4].liveOK = FALSE;
switch( pme->stage ) {
case 1:
pme->GameState = GS_BOSS1_HALF;
break;
case 2:
pme->GameState = GS_BOSS2_HALF;
break;
case 3:
pme->bossPage = 0;
pme->GameState = GS_BOSS3_HALF;
break;
}
return;
}else {
return;
}
}
if( !pme->bossOn ) {
for( i = 0;i < 4;i++ ) {
if( pme->typeInOrder[pme->stage - 1][pme->enemyLineUp][i] != 99 ) {
pme->enemyDelay[i] = 0;
pme->ply[i + 1].liveOK = TRUE;
pme->ply[i + 1].onScreen = FALSE;
pme->ply[i + 1].type = pme->typeInOrder[pme->stage - 1][pme->enemyLineUp][i];
//蹬瘤赣府 加己阑 穿啊 啊瘤绰瘤...
switch( pme->stage ) {
case 1:
if( pme->enemyLineUp == 7 && i == 0 ) {
pme->ply[i + 1].getPig = TRUE;
}
break;
case 2:
if( pme->enemyLineUp == 5 && i == 2 ) {
pme->ply[i + 1].getPig = TRUE;
}else if( pme->enemyLineUp == 9 && i == 3 ) {
pme->ply[i + 1].getPig = TRUE;
}
break;
case 3:
if( pme->enemyLineUp == 6 && i == 3 ) {
pme->ply[i + 1].getPig = TRUE;
}else if( pme->enemyLineUp == 11 && i == 2 ) {
pme->ply[i + 1].getPig = TRUE;
}
break;
}
rnd = GetRandomMinMax(pi, 0, 100);
pme->ply[i + 1].AIState = AI_STEP;
//pme->ply[i + 1].AIState = AI_INITEXPLORE;
switch( pme->ply[i + 1].type ) {
case 1:
pme->ply[i + 1].HP = 45;
break;
case 2:
pme->ply[i + 1].HP = 35;
break;
case 3:
pme->ply[i + 1].HP = 60;
break;
case 4:
pme->ply[i + 1].HP = STAGE1_ENERGY;
break;
case 5:
pme->ply[i + 1].HP = STAGE2_ENERGY;
break;
case 6:
pme->ply[i + 1].HP = STAGE3_ENERGY;
break;
}
switch( pme->xyInOrder[pme->stage - 1][pme->enemyLineUp][i] ) {
case 1:
pme->ply[i + 1].playerX = -35;
pme->ply[i + 1].currentDir = ES_RIGHT;
switch( pme->ply[i + 1].type ) {
case 1:
pme->ply[i + 1].playerY = pme->O_PlayerY + 34;
break;
case 2:
pme->ply[i + 1].playerY = pme->O_PlayerY + 32;
break;
case 3:
pme->ply[i + 1].playerY = pme->O_PlayerY + 31;
break;
case 4:
pme->ply[i + 1].playerY = pme->O_PlayerY + 31;
break;
case 5:
pme->ply[i + 1].playerY = pme->O_PlayerY + 30;
break;
case 6:
pme->ply[i + 1].playerY = pme->O_PlayerY + 31;
break;
}
pme->ply[i + 1].yLevel = Y_LEV_1;
break;
case 2:
pme->ply[i + 1].playerX = -35;
pme->ply[i + 1].currentDir = ES_RIGHT;
switch( pme->ply[i + 1].type ) {
case 1:
pme->ply[i + 1].playerY = pme->O_PlayerY + 74;
break;
case 2:
pme->ply[i + 1].playerY = pme->O_PlayerY + 72;
break;
case 3:
pme->ply[i + 1].playerY = pme->O_PlayerY + 71;
break;
case 4:
pme->ply[i + 1].playerY = pme->O_PlayerY + 71;
break;
case 5:
pme->ply[i + 1].playerY = pme->O_PlayerY + 70;
break;
case 6:
pme->ply[i + 1].playerY = pme->O_PlayerY + 71;
break;
}
pme->ply[i + 1].yLevel = Y_LEV_9;
break;
case 3:
pme->ply[i + 1].playerX = 110;
pme->ply[i + 1].currentDir = ES_LEFT;
switch( pme->ply[i + 1].type ) {
case 1:
pme->ply[i + 1].playerY = pme->O_PlayerY + 34;
break;
case 2:
pme->ply[i + 1].playerY = pme->O_PlayerY + 32;
break;
case 3:
pme->ply[i + 1].playerY = pme->O_PlayerY + 31;
break;
case 4:
pme->ply[i + 1].playerY = pme->O_PlayerY + 31;
break;
case 5:
pme->ply[i + 1].playerY = pme->O_PlayerY + 30;
break;
case 6:
pme->ply[i + 1].playerY = pme->O_PlayerY + 31;
break;
}
pme->ply[i + 1].yLevel = Y_LEV_1;
break;
case 4:
pme->ply[i + 1].playerX = 110;
pme->ply[i + 1].currentDir = ES_LEFT;
switch( pme->ply[i + 1].type ) {
case 1:
pme->ply[i + 1].playerY = pme->O_PlayerY + 74;
break;
case 2:
pme->ply[i + 1].playerY = pme->O_PlayerY + 72;
break;
case 3:
pme->ply[i + 1].playerY = pme->O_PlayerY + 71;
break;
case 4:
pme->ply[i + 1].playerY = pme->O_PlayerY + 71;
break;
case 5:
pme->ply[i + 1].playerY = pme->O_PlayerY + 70;
break;
case 6:
pme->ply[i + 1].playerY = pme->O_PlayerY + 71;
break;
}
pme->ply[i + 1].yLevel = Y_LEV_9;
break;
}
}
}
pme->enemyLineUp++;
} // end of if
}else {
pme->timeforEnemy++;
}
}
}
static void drawOption(IApplet * pi)
{
int i;
int j;
int tmp = 0;
HotBloodApp * pme = (HotBloodApp *)pi;
IDISPLAY_SetColor(pme->a.m_pIDisplay, CLR_USER_BACKGROUND, MAKE_RGB(127, 127, 127));
IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
for( i = 0;tmp < pme->m_cyHeight;i++ ) {
tmp = i * 25;
for( j = 0;j < 3 + (i % 2);j++ ) {
IIMAGE_Draw(pme->m_pIMenu[0], (i % 2) * -20 + j * 40, i * 25);
}
}
IIMAGE_Draw(pme->m_pIMenu[2], 1, 0);
IIMAGE_Draw(pme->m_pIMenu[2], pme->m_cxWidth - 13, 0);
if( pme->m_cyHeight > 117 ) {
IIMAGE_Draw(pme->m_pIMenu[2], 1, 117);
IIMAGE_Draw(pme->m_pIMenu[2], pme->m_cxWidth - 13, 117);
}
IIMAGE_Draw(pme->m_pIMenu[4], 1, 0);
IIMAGE_Draw(pme->m_pIMenu[4], pme->m_cxWidth - 13, 0);
IIMAGE_Draw(pme->m_pIMenu[3], 0, pme->m_cyHeight - 4);
IIMAGE_Draw(pme->m_pIMenu[3], pme->m_cxWidth - 16, pme->m_cyHeight - 4);
IIMAGE_Draw(pme->m_pIMenu[7], -3, 1);
IIMAGE_Draw(pme->m_pIMenu[6], pme->m_cxWidth - 40, 1);
for( i = 0;(i * 25) + 50 < pme->m_cyHeight;i++ ) {
IIMAGE_Draw(pme->m_pIMenu[9], -1, 25 + (i * 25));
IIMAGE_Draw(pme->m_pIMenu[8], pme->m_cxWidth - 17, 25 + (i * 25));
}
if( pme->GameState != GS_HELP_P ) {
for( i = 0;tmp < pme->m_cyHeight;i++ ) {
tmp = i * 25;
for( j = 0;j < 3 + (i % 2);j++ ) {
IIMAGE_Draw(pme->m_pIMenu[0], (i % 2) * -20 + j * 40, i * 25);
}
}
}
IIMAGE_Draw(pme->m_pIOption[0], (pme->m_cxWidth - 88) / 2, ((pme->m_cyHeight - 11) - 30) / 2);
//IIMAGE_Draw(pme->m_pIOption[1], (pme->m_cxWidth - 88) / 2, ((pme->m_cyHeight - 11) - 30) / 2 + 18);
IIMAGE_Draw(pme->m_pIOption[2], (pme->m_cxWidth - 88) / 2 + 38, ((pme->m_cyHeight - 11) - 30) / 2 + 2);
//IIMAGE_Draw(pme->m_pIOption[2], (pme->m_cxWidth - 88) / 2 + 38, ((pme->m_cyHeight - 11) - 30) / 2 + 20);
/*
switch( pme->selectedMenu ) {
case 0:
IIMAGE_Draw(pme->m_pICursor, (pme->m_cxWidth - 88) / 2 - 8, ((pme->m_cyHeight - 11) - 30) / 2 - 8);
break;
case 1:
IIMAGE_Draw(pme->m_pICursor, (pme->m_cxWidth - 88) / 2 - 8, ((pme->m_cyHeight - 11) - 30) / 2 + 18 - 8);
break;
}
*/
if( pme->soundOn )
IIMAGE_Draw(pme->m_pIOption[3], (pme->m_cxWidth - 88) / 2 + 38 + 15, ((pme->m_cyHeight - 11) - 30) / 2 + 2 + 5);
else
IIMAGE_Draw(pme->m_pIOption[3], (pme->m_cxWidth - 88) / 2 + 38 + 41, ((pme->m_cyHeight - 11) - 30) / 2 + 2 + 5);
/*
if( pme->vibOn )
IIMAGE_Draw(pme->m_pIOption[3], (pme->m_cxWidth - 88) / 2 + 38 + 15, ((pme->m_cyHeight - 11) - 30) / 2 + 20 + 5);
else
IIMAGE_Draw(pme->m_pIOption[3], (pme->m_cxWidth - 88) / 2 + 38 + 41, ((pme->m_cyHeight - 11) - 30) / 2 + 20 + 5);
*/
IIMAGE_Draw(pme->m_pIButton[3], 0, pme->m_cyHeight - 11);
IIMAGE_Draw(pme->m_pIButton[1], 31, pme->m_cyHeight - 11);
IIMAGE_Draw(pme->m_pIButton[4], pme->m_cxWidth - 34, pme->m_cyHeight - 11);
IDISPLAY_Update(pme->a.m_pIDisplay);
}
static void drawSave(IApplet * pi)
{
int i;
int j;
int tmp = 0;
HotBloodApp * pme = (HotBloodApp *)pi;
IDISPLAY_SetColor(pme->a.m_pIDisplay, CLR_USER_BACKGROUND, MAKE_RGB(127, 127, 127));
IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
for( i = 0;tmp < pme->m_cyHeight;i++ ) {
tmp = i * 25;
for( j = 0;j < 3 + (i % 2);j++ ) {
IIMAGE_Draw(pme->m_pIMenu[0], (i % 2) * -20 + j * 40, i * 25);
}
}
IIMAGE_Draw(pme->m_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -