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

📄 helloworld.c

📁 一个很不错的韩国游戏源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "helloworld.h"

int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
{
   *ppObj = NULL;
		
   if(ClsId == AEECLSID_MINE_SWEEPER){
      if(AEEApplet_New(sizeof(mousept), ClsId, pIShell,po,(IApplet**)ppObj,
         (AEEHANDLER)HelloWorld_HandleEvent,(PFNFREEAPPDATA)mine_FreeAppData)
         == TRUE)
      {
         return (AEE_SUCCESS);
      }
   }
	return (EFAILED);
}

static void TimerCB(mousept * pMe)
{
	AECHAR sz3R[] = {'3','R',' ','G','a','m','e','s','\0'};
	
	
	if (pMe->state==gameover_state_middle) {
	
	//	pMe->state=gameover_state_next;

	} else if (pMe->state==clear_state_middle || pMe->state == clear_state) {
		pMe->state=clear_state;
		if(pMe->gameover_count == 0)
		{
			pMe->gameover_count = 1;
			IIMAGE_Draw(pMe->m_clear,pMe->m_cxWidth/2-40,pMe->m_cyHeight/2-22);
			IDISPLAY_Update (pMe->a.m_pIDisplay);
		}
		else
			pMe->gameover_count = 0;
	} else if (pMe->state==score_state) {
		if (pMe->score_tag==1) {
/*
			IDISPLAY_ClearScreen (pMe->a.m_pIDisplay);  // Clear whole screen
			draw_bg(pMe);

			IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);
			IIMAGE_Draw(pMe->m_menu5,pMe->m_cxWidth/2-28,pMe->m_cyHeight/2-35);
	
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2-20, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer1, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2-10, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer2, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer3, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2+10, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer4, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2+20, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print

			pMe->score_tag=1;
			IDISPLAY_Update (pMe->a.m_pIDisplay);
*/

			//if(pMe->RankStatus == RANKSTATUS_READING || pMe->RankStatus == RANKSTATUS_WRITING)
			if(pMe->RankStatus != RANKSTATUS_DISABLE)
			{
				IIMAGE_Draw(pMe->m_bomb1,pMe->nCenterX - 8,pMe->nCenterY + 12);
				IDISPLAY_Update (pMe->a.m_pIDisplay);
			}
			pMe->score_tag=2;
		} else if (pMe->score_tag==2) {
/*
			IDISPLAY_ClearScreen (pMe->a.m_pIDisplay);  // Clear whole screen
			draw_bg(pMe);
	

			IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);
			IIMAGE_Draw(pMe->m_menu5,pMe->m_cxWidth/2-28,pMe->m_cyHeight/2-35);
			
			if (pMe->myscore_tag!=0)
				IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2-20, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			if (pMe->myscore_tag!=1)
				IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer1, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2-10, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			if (pMe->myscore_tag!=2)
				IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer2, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			if (pMe->myscore_tag!=3)
				IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer3, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2+10, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			if (pMe->myscore_tag!=4)
				IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,pMe->pBuffer4, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2+20, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);//print
			
			pMe->score_tag=0;
			IDISPLAY_Update (pMe->a.m_pIDisplay);
*/
			if(pMe->RankStatus != RANKSTATUS_DISABLE)
			{
				IIMAGE_Draw(pMe->m_bomb2,pMe->nCenterX - 8,pMe->nCenterY + 14);
				IDISPLAY_Update (pMe->a.m_pIDisplay);
			}
			pMe->score_tag=1;
		}

		ISHELL_SetTimer(pMe->a.m_pIShell,100,(PFNNOTIFY)TimerCB,pMe);

	} else if (pMe->state==title_state) {
		IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);
		if (pMe->title_tag==0) {
			IIMAGE_Draw(pMe->m_title1,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-42);
		} else if (pMe->title_tag==1) {			
			IIMAGE_Draw(pMe->m_title2,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-42);			
		}
		IIMAGE_Draw(pMe->m_ktfimg,pMe->m_cxWidth/2-60+2,pMe->m_cyHeight/2-60+3);
		IIMAGE_Draw(pMe->m_mnimg,pMe->m_cxWidth/2+18,pMe->m_cyHeight/2-57);
		IIMAGE_Draw(pMe->m_billcom,pMe->nCenterX-41,pMe->m_cyHeight-18);
		IIMAGE_Draw(pMe->m_rankingpack,pMe->nCenterX-58,pMe->m_cyHeight-9);

		if (pMe->title_tag==0) {
			IIMAGE_Draw(pMe->m_pressimg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2+30);
			IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_USER_TEXT, RGB_BLACK);
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->nCenterX + 2, pMe->nCenterY + 8, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->nCenterX + 2, pMe->nCenterY + 12, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->nCenterX - 2, pMe->nCenterY + 8, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->nCenterX - 2, pMe->nCenterY + 12, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);
			IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_USER_TEXT, MAKE_RGB(255,255,171));
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->nCenterX, pMe->nCenterY + 10, 0,IDF_ALIGN_CENTER|IDF_TEXT_TRANSPARENT);
			pMe->title_tag=1;
		} else if (pMe->title_tag==1) {			
			pMe->title_tag=0;
		}

		IDISPLAY_Update (pMe->a.m_pIDisplay);

		ISHELL_SetTimer(pMe->a.m_pIShell,500,(PFNNOTIFY)TimerCB,pMe);

	} else if (pMe->state==gameover_state||pMe->state==gameover_state_next) {
		//pMe->iii++;
		if (pMe->gameover_count==0)
			pMe->gameover_count=1;
		else 
			pMe->gameover_count=0;		

		//draw_mainfield(pMe);
		
		draw_gameover(pMe,pMe->over_tag);
		draw_overimg(pMe);

		if (pMe->iii>=2) {
			pMe->state = gameover_state_next;
		}
		

		//blink
	
	
	} else if (pMe->state==menu_state) {
		/*
		if (pMe->menu_tag==0) {
			
			IDISPLAY_ClearScreen (pMe->a.m_pIDisplay);  // Clear whole screen
			draw_bg(pMe);

			IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);

			IIMAGE_Draw(pMe->m_menu1,pMe->m_cxWidth/2-20,pMe->m_cyHeight/2-50);

			IIMAGE_Draw(pMe->m_menu2,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2-30);

			IIMAGE_Draw(pMe->m_menu7,pMe->m_cxWidth/2-40,pMe->m_cyHeight/2-15);
			IIMAGE_Draw(pMe->m_menu3,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2);
			IIMAGE_Draw(pMe->m_menu4,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2+15);

			IIMAGE_Draw(pMe->m_menu5,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2+30);

			IIMAGE_Draw(pMe->m_menu6,pMe->m_cxWidth/2-21,pMe->m_cyHeight/2+45);



			IIMAGE_Draw(pMe->m_char2,pMe->m_cxWidth/2+26,pMe->m_cyHeight/2+5);

			//cygnusmenu


			switch(pMe->menu_position) {

				case 0:
					IIMAGE_Draw(pMe->m_bomb2,pMe->m_cxWidth/2-50+bomb_align1,pMe->m_cyHeight/2-30+bomb_align3);
				break;

				case 1:
					IIMAGE_Draw(pMe->m_bomb2,pMe->m_cxWidth/2-50-3+bomb_align1,pMe->m_cyHeight/2-15+bomb_align3);
				break;

				case 2:
					IIMAGE_Draw(pMe->m_bomb2,pMe->m_cxWidth/2-50+bomb_align1,pMe->m_cyHeight/2+bomb_align3);
				break;

				case 3:
					IIMAGE_Draw(pMe->m_bomb2,pMe->m_cxWidth/2-50+bomb_align1,pMe->m_cyHeight/2+15+bomb_align3);
				break;

				case 4:
					IIMAGE_Draw(pMe->m_bomb2,pMe->m_cxWidth/2-50+bomb_align1,pMe->m_cyHeight/2+30+bomb_align3);
				break; 

				case 5:
					IIMAGE_Draw(pMe->m_bomb2,pMe->m_cxWidth/2-50+bomb_align1,pMe->m_cyHeight/2+45+bomb_align3);
				break; 

			}
			pMe->menu_tag=1;
			IDISPLAY_Update (pMe->a.m_pIDisplay);

		} else if (pMe->menu_tag==1) {
			
			IDISPLAY_ClearScreen (pMe->a.m_pIDisplay);  // Clear whole screen
			draw_bg(pMe);


			IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);
			
			IIMAGE_Draw(pMe->m_menu1,pMe->m_cxWidth/2-20,pMe->m_cyHeight/2-50);

			IIMAGE_Draw(pMe->m_menu2,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2-30);

			IIMAGE_Draw(pMe->m_menu7,pMe->m_cxWidth/2-40,pMe->m_cyHeight/2-15);
			IIMAGE_Draw(pMe->m_menu3,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2);
			IIMAGE_Draw(pMe->m_menu4,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2+15);

			//IIMAGE_Draw(pMe->m_menu5,pMe->m_cxWidth/2-36,pMe->m_cyHeight/2+30);
			IIMAGE_Draw(pMe->m_menu5,pMe->m_cxWidth/2-30,pMe->m_cyHeight/2+30);

			IIMAGE_Draw(pMe->m_menu6,pMe->m_cxWidth/2-21,pMe->m_cyHeight/2+45);

			IIMAGE_Draw(pMe->m_char1,pMe->m_cxWidth/2+26,pMe->m_cyHeight/2+5);

			//cygnusmenu


			switch(pMe->menu_position) {

				case 0:
					IIMAGE_Draw(pMe->m_bomb1,pMe->m_cxWidth/2-50+bomb_align2,pMe->m_cyHeight/2-30+bomb_align);
				break;

				case 1:
					IIMAGE_Draw(pMe->m_bomb1,pMe->m_cxWidth/2-50-3+bomb_align2,pMe->m_cyHeight/2-15+bomb_align);
				break;

				case 2:
					IIMAGE_Draw(pMe->m_bomb1,pMe->m_cxWidth/2-50+bomb_align2,pMe->m_cyHeight/2+bomb_align);
				break;

				case 3:
					IIMAGE_Draw(pMe->m_bomb1,pMe->m_cxWidth/2-50+bomb_align2,pMe->m_cyHeight/2+15+bomb_align);
				break;

				case 4:
					IIMAGE_Draw(pMe->m_bomb1,pMe->m_cxWidth/2-50+bomb_align2,pMe->m_cyHeight/2+30+bomb_align);
				break; 

				case 5:
					IIMAGE_Draw(pMe->m_bomb1,pMe->m_cxWidth/2-50+bomb_align2,pMe->m_cyHeight/2+45+bomb_align);
				break; 

			}

			pMe->menu_tag=0;
			IDISPLAY_Update (pMe->a.m_pIDisplay);
		}
		*/

		if(pMe->menu_tag == 0)
			pMe->menu_tag = 1;
		else
			pMe->menu_tag = 0;

		draw_menu(pMe);

		ISHELL_SetTimer(pMe->a.m_pIShell,500,(PFNNOTIFY)TimerCB,pMe);

	} else if (pMe->state==ready_state) {

		//cygnusready
		pMe->ii++;

		if (pMe->ready_count==0)
			pMe->ready_count=1;
		else 
			pMe->ready_count=0;

		if (pMe->ii==3) {	
			pMe->state=start_state;
		}

		draw_mainfield(pMe);
		ready_game(pMe);

	//	ISHELL_SetTimer(pMe->a.m_pIShell,700,(PFNNOTIFY)TimerCB,pMe);

	} else if (pMe->state == exp_state) {
		draw_exp(pMe, pMe->ii);
	} else if (pMe->state!=popup_state) { 

		pMe->time_count++;

		if (pMe->time_count>=max_time)
			pMe->time_count=max_time;

		pMe->state=start_state;

		draw_mainfield(pMe);

		ISHELL_SetTimer(pMe->a.m_pIShell,timerValue,(PFNNOTIFY)TimerCB,pMe);
	}

}

void draw_timer(mousept * pMe) {

	
	
	char myNum[]="    ";
	char flagNum[]="   ";
	char flagNum2[]="   ";

	AECHAR szBuf [10] = {0};
/*
	myNum[0]='\0';
	myNum[1]='\0';
	myNum[2]='\0';
	myNum[3]='\0';

	flagNum[0]='\0';
	flagNum[1]='\0';
	flagNum[2]='\0';
	*/

	IIMAGE_Draw(pMe->m_clockimg,pMe->m_cxWidth/3-30, pMe->m_cyHeight-16);

	SPRINTF(myNum,"%d", pMe->time_count);//int ->char
        STR_TO_WSTR (myNum, szBuf, sizeof (szBuf));
	IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD, szBuf, -1, pMe->m_cxWidth/3-3, pMe->m_cyHeight-14, 0,IDF_TEXT_TRANSPARENT);//print
	

	

	IIMAGE_Draw(pMe->m_common,pMe->m_cxWidth/3*2-15, pMe->m_cyHeight-12);

	SPRINTF(flagNum,"%d", pMe->flag_count);//int ->char
	STR_TO_WSTR (flagNum, szBuf, sizeof (szBuf));
	IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD, szBuf, -1, pMe->m_cxWidth/3*2, pMe->m_cyHeight-14, 0,IDF_TEXT_TRANSPARENT);//print

	SPRINTF(flagNum2,"/%d", pMe->mine_num);//int ->char
	STR_TO_WSTR (flagNum2, szBuf, sizeof (szBuf));
	IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD, szBuf, -1, pMe->m_cxWidth/3*2+15, pMe->m_cyHeight-14, 0,IDF_TEXT_TRANSPARENT);//print

	IIMAGE_Draw(pMe->m_arrow,(pMe->x)*10+5,(pMe->y)*10+5);

	IDISPLAY_Update (pMe->a.m_pIDisplay);

	//if (pMe->time_count==10) 
	//	draw_gameover(pMe,1);
}





// SEED狼 檬扁拳
// 付捞农肺 鸥烙狼 蔼阑 檬扁 SEED肺 汲沥
// 橇肺弊伐狼 贸澜捞唱 檬扁拳啊 鞘夸且锭 龋免
static void INIT_RAND(mousept * pMe, int a)
{
	pMe->Seed = (unsigned long)GET_TIMEMS() + a;
	pMe->Next_Seed = pMe->Seed;
}

////////////////// 罚待 惯积 窃荐 //////////////////////////
static int RAND(mousept * pMe, int ran)
{	
	int RAND_MAX = ran;
	pMe->Next_Seed = pMe->Next_Seed * 1103515245L + 12345;
	return((unsigned)(pMe->Next_Seed / 65536L) % (RAND_MAX + 1));
} 

static void open_zero(mousept * pMe,int i,int j) {
	pMe->field_state[i][j]=1;
		
		if (i>0) {

			      if (j>0) {

				      
				      if (pMe->mine_state[i-1][j-1]==0) {
						if (pMe->field_state[i-1][j-1]!=1)
							open_zero(pMe,i-1,j-1);		      
					      
				 
				      }
				      pMe->field_state[i-1][j-1]=1;

			      }
				
			        if (pMe->mine_state[i-1][j]==0) {
					if (pMe->field_state[i-1][j]!=1)
						open_zero(pMe,i-1,j);	
					
				      
				}
				pMe->field_state[i-1][j]=1;

				if (pMe->mine_height>j+1) {

					
					
					if (pMe->mine_state[i-1][j+1]==0) {
						if (pMe->field_state[i-1][j+1]!=1)
							open_zero(pMe,i-1,j+1);		      
					      
					}
					pMe->field_state[i-1][j+1]=1;
				}

		}

	      if (j>0) {
		      
		      if (pMe->mine_state[i][j-1]==0) {
			      if (pMe->field_state[i][j-1]!=1)
					open_zero(pMe,i,j-1);		      
			      

		      }
		      pMe->field_state[i][j-1]=1;

		      if (pMe->mine_width>i+1) {
			      
			      if (pMe->mine_state[i+1][j-1]==0) {
				      if (pMe->field_state[i+1][j-1]!=1)
							
				      open_zero(pMe,i+1,j-1);		      
				      

			      }
			      pMe->field_state[i+1][j-1]=1;
		      }

	      }

	      if (pMe->mine_height>j+1) {

			
		      if (pMe->mine_state[i][j+1]==0) {
			      if (pMe->field_state[i][j+1]!=1)
							
			    open_zero(pMe,i,j+1);		      
			      

		      }
		      pMe->field_state[i][j+1]=1;
	      }

	      if (pMe->mine_width>i+1) {
		      
		      if (pMe->mine_state[i+1][j]==0) {
			      if (pMe->field_state[i+1][j]!=1)
							
			      open_zero(pMe,i+1,j);		      
			      

		      }
		      pMe->field_state[i+1][j]=1;
	      }

	      if (pMe->mine_height>j+1&&pMe->mine_width>i+1) {
		      
		      if (pMe->mine_state[i+1][j+1]==0) {
			      if (pMe->field_state[i+1][j+1]!=1)
							
			      open_zero(pMe,i+1,j+1);		      
			      
		      }
		      pMe->field_state[i+1][j+1]=1;
	      }
		

	


}

static void draw_popup(mousept * pMe) {

	IIMAGE_Draw(pMe->m_popmain,0,pMe->m_cyHeight-40);
				
	

	switch (pMe->popup_position) {
		case 0:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -