⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hotblood.c

📁 <B>韩国游戏《热血》</B>
💻 C
📖 第 1 页 / 共 5 页
字号:
						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 + -