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

📄 helloworld.c.bak

📁 一个很不错的韩国游戏源代码
💻 BAK
📖 第 1 页 / 共 5 页
字号:
/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */

#include "AEEModGen.h"          // Module interface definitions
#include "AEEAppGen.h"          // Applet interface definitions
#include "AEEShell.h"           // Shell interface definitions
#include "AEEDisp.h"            // Display interface definitions
#include "AEEImage.h"           // IImage interface definitions
#include "AEEStdlib.h"		// Standard library definitions
#include "AEEFile.h"		// AEEFile Services
#include "helloworld.bid"	// applet class ID
#include "helloworld_res.h"		// Resource file name
	    

//#define pMe->mine_width 15
//#define pMe->mine_height 19
#define AEECLSID_TIMERAPP 0x0100FF02

//#define mine_num 15
 
#define start_state 1
#define gameover_state 2
#define title_state 3
#define menu_state 4
#define ready_state 5
#define gameover_state_next 6
#define gameover_state_middle 7
#define clear_state 8
#define clear_state_middle 9
#define score_state 10
#define ques_state 11
#define popup_state 12
#define help_state 13
#define help2_state 14
#define control_state 15

#define timerValue 1000
#define startValue 3000
#define overValue  1500
#define clearValue  1500
#define bomb_align -11
#define bomb_align1 -4
#define bomb_align2 -4
#define bomb_align3 -9
#define max_time 999

#define PHONE_TEST 1




/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/

typedef struct _mousept
{
	AEEApplet a;
	int x; // cursor x point
	int y; // cursor y point
	int field_state[30][30]; // 拜磊狼 惑怕  
	int mine_state[30][30];  // mine position
	int state;               // game 狼 傈眉 state

	int m_cyHeight;          // lcd height
	int m_cxWidth;		 // lcd width

	int mine_width;          // 拜磊狼 啊肺 沫荐
	int mine_height;	 // 拜磊狼 技肺 沫荐

	int time_count;		 // timer var
	int flag_count;		// flag 荐
	int ready_count;	// ready 濒糊烙 冉荐
	int gameover_count;	// gameover 濒糊烙 冉荐
	int over_tag;		// gameover 矫狼 惑怕
	int oversound_tag;	// gameover 矫俊 荤款靛 免仿窍扁 困茄 var

	int menu_position;	// menu 俊辑狼 泅犁困摹
	int title_tag;		// title animation 阑 困茄 var
	int menu_tag;		// menu animation 阑 困茄 var
	
	int popup_position;     // popup menu 俊辑狼 困摹 var
	int ii;   // ready img 狼 碍力 blink 冉荐
	int iii;  // gameover img 狼 碍力 blink 冉荐
	int mine_num; //傈眉 mine 狼 办荐
	int sound_tag; //sound on/off var
	int myscore_tag; // 规陛 扁废茄 弥绊痢荐甫 pointing
	int score_tag ; // 弥绊痢荐 官娄烙
	
	unsigned long Next_Seed; 
	unsigned long Seed; 
	unsigned short pBuffer[5];
	unsigned short pBuffer1[5];
	unsigned short pBuffer2[5];
	unsigned short pBuffer3[5];
	unsigned short pBuffer4[5];

	IFileMgr * m_pIFileMgr;

	IFileMgr * m_mmfMgr;

	/*
	IFileMgr * m_mmfMgr1;
	IFileMgr * m_mmfMgr2;
	IFileMgr * m_mmfMgr3;
	IFileMgr * m_mmfMgr4;
	IFileMgr * m_mmfMgr5;
	IFileMgr * m_mmfMgr6;
	IFileMgr * m_mmfMgr7;
	*/

	ISoundPlayer * m_pISoundPlayer;
	ISoundPlayer * m_pISoundPlayer1;
	ISoundPlayer * m_pISoundPlayer2;
	ISoundPlayer * m_pISoundPlayer3;
	ISoundPlayer * m_pISoundPlayer4;
	ISoundPlayer * m_pISoundPlayer5;
	ISoundPlayer * m_pISoundPlayer6;
	ISoundPlayer * m_pISoundPlayer7;

	byte * pBuf; 
	byte * pBuf1; 
	byte * pBuf2; 
	byte * pBuf3; 
	byte * pBuf4; 
	byte * pBuf5; 
	byte * pBuf6; 
	byte * pBuf7; 

	IFile * m_pIFile;
	IFile * m_mmffile;

	IFile * m_mmffile1;
	IFile * m_mmffile2;
	IFile * m_mmffile3;
	IFile * m_mmffile4;
	IFile * m_mmffile5;
	IFile * m_mmffile6;
	IFile * m_mmffile7;

	IImage * m_arrow;
	IImage * m_field;

	IImage * m_ques;
	IImage * m_flag;
	IImage * m_common;

	IImage * m_1;
	IImage * m_2;
	IImage * m_3;
	IImage * m_4;
	IImage * m_5;
	IImage * m_6;
	IImage * m_7;
	IImage * m_8;
	IImage * m_red;
	IImage * m_fail;

	IImage * m_ready;
	IImage * m_over;
	IImage * m_clear;

	IImage * m_menu1;
	IImage * m_menu2;
	IImage * m_menu3;
	IImage * m_menu4;
	IImage * m_menu5;
	IImage * m_menu6;
	IImage * m_menu7;

	IImage * m_char1;
	IImage * m_char2;

	IImage * m_bomb1;
	IImage * m_bomb2;

	IImage * m_title1;
	IImage * m_title2;

	IImage * m_mainbg;
	IImage * m_pressimg;
	IImage * m_clockimg;

	IImage * m_ktfimg;
	IImage * m_mnimg;

	IImage * m_pop1;
	IImage * m_pop2;
	IImage * m_pop3;

	IImage * m_popmain;
	IImage * m_pophelp;
	IImage * m_popresume;
	IImage * m_popend;
	IImage * m_keypad;

}mousept;

static boolean HelloWorld_HandleEvent(IApplet * pi, AEEEvent eCode,
				      uint16 wParam, uint32 dwParam); 
static void mine_FreeAppData(IApplet* pi);
static void draw_mainfield(mousept * pMe) ;
static void draw_gameover(mousept * pMe,int tag) ;
static void ready_game(mousept * pMe) ;
static void draw_bg(mousept * pMe) ;
static void draw_overimg(mousept * pMe) ;


int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
{
   *ppObj = NULL;
		
   if(ClsId == AEECLSID_HELLOWORLD){
      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',' ',' ','I','n','c','.','\0'};
	
	
	if (pMe->state==gameover_state_middle) {
	
	//	pMe->state=gameover_state_next;

	} else if (pMe->state==clear_state_middle) {
	
		
		pMe->state=clear_state;

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

		if (pMe->score_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_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);

		} else 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);
			
			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);
		}

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

	} else if (pMe->state==title_state) {
		if (pMe->title_tag==0) {
			IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);
			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_title1,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-42);
			IIMAGE_Draw(pMe->m_pressimg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2+30);
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2, 0,IDF_ALIGN_CENTER|IDF_ALIGN_BOTTOM|IDF_TEXT_TRANSPARENT);

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

		} else if (pMe->title_tag==1) {
			IIMAGE_Draw(pMe->m_mainbg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-60);
			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_title1,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2-42);
			//IIMAGE_Draw(pMe->m_pressimg,pMe->m_cxWidth/2-60,pMe->m_cyHeight/2+30);
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_BOLD,sz3R, -1,pMe->m_cxWidth/2,pMe->m_cyHeight/2, 0,IDF_ALIGN_CENTER|IDF_ALIGN_BOTTOM|IDF_TEXT_TRANSPARENT);
			
			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);


		/*
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd, -1, 50,0, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd1, -1, 50,20, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd2, -1, 50,30, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd3, -1, 50,40, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd4, -1, 50,50, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd5, -1, 50,60, 0,IDF_ALIGN_CENTER);//print
		*/
			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_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_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);


		/*
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd, -1, 50,0, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd1, -1, 50,20, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd2, -1, 50,30, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd3, -1, 50,40, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd4, -1, 50,50, 0,IDF_ALIGN_CENTER);//print
			IDISPLAY_DrawText(pMe->a.m_pIDisplay, AEE_FONT_NORMAL, szBufd5, -1, 50,60, 0,IDF_ALIGN_CENTER);//print
		*/
			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_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_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);
		}

		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==5) {
		
			pMe->state=start_state;
		}

		draw_mainfield(pMe);
		ready_game(pMe);

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




	} 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';

⌨️ 快捷键说明

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