📄 helloworld.c
字号:
#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 + -