📄 javatuixiangzi.txt
字号:
BOOL Init(void)
{
if (g_gameWd==NULL)
{
g_gameWd=MEM_ALLOC(sizeof(GameWd));
if (g_gameWd==NULL)
{
return FALSE;
}
}
memset(g_gameWd,0,sizeof(GameWd));
g_gameWd->dwNextwdID=GAME_LIST_WND_ID;
if(g_pchplaymapdata==NULL)
{
g_pchplaymapdata = MEM_ALLOC(MAPDATA_BUFFER_SIZE); //宏 申请大小 不用sizeof
if (g_pchplaymapdata==NULL)
{
return FALSE;
}
}
memset(g_pchplaymapdata,0,MAPDATA_BUFFER_SIZE);
return TRUE;
}
void Uninitial(void)
{
int i;
if (g_gameWd!=NULL)
{
MEM_FREE(g_gameWd);
g_gameWd=NULL;
}
if (g_pchplaymapdata!=NULL)
{
MEM_FREE(g_pchplaymapdata);
g_pchplaymapdata=NULL;
}
for (i=0;i<10;i++)
{
if (g_everystep[i] != NULL && g_everystep[i]->psplaystep!=NULL)
{
MEM_FREE(g_everystep[i]->psplaystep);
g_everystep[i]->psplaystep=NULL;
}
}
for (i=0;i<10;i++)
{
if (g_everystep[i]!=NULL)
{
MEM_FREE(g_everystep[i]);
g_everystep[i]=NULL;
}
}
}
LRESULT CALLBACK GamestartWnd_CallBack(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
int x0=MAPSIZEX,y0=MAPSIZEY;
PAINTSTRUCT ps;
HDC hdc;
HBRUSH hbr;
RECT rect;
const int deltax,deltay;
static BOOL LButtonDown_Flag=FALSE;
//static BOOL FREEMODE_flag=TRUE;
FILE *fp;
int i;
switch(msg)
{
case WM_CREATE:
break;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
SetBkColor(hdc,GRAY_BRUSH);
hbr=(HBRUSH)GetStockObject(GRAY_BRUSH);
GetClientRect(hwnd,&rect);
FillRect(hdc,&rect,hbr);
SetTextColor(hdc,RGB(255,0,0));
SetBkColor(hdc,RGB(0,0,255));
MjDrawImage(hdc,x0,y0,&image_BOX_START);
EndPaint(hwnd, &ps);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_PASSMODE_BUTTON:
if (HIWORD(wParam)==BN_CLICKED)
{
FREE_MODE_FLAG=FALSE;
Loadpassmodefile();
memset(&dtime,0,sizeof(Datetime));
sumofstep=0;
PostMessage(hwnd, WM_KEYDOWN, VK_RETURN, 0L);
}
return TRUE;
case ID_FREEMODE_BUTTON:
if (HIWORD(wParam)==BN_CLICKED )
{
FREE_MODE_FLAG=TRUE;
g_chspeedpassmax=84;
Loadfreemodefile();
memset(&dtime,0,sizeof(Datetime));
sumofstep=0;
PostMessage(hwnd, WM_KEYDOWN, VK_RETURN, 0L);
}
return TRUE;
default:
return TRUE;
}
case WM_KEYDOWN:
switch(LOWORD(wParam))
{
case VK_RETURN:
g_gameWd->dwNextwdID=GAME_PLAY_WND_ID;
PostMessage(g_gameWd->pMainwd->hMainWnd, WM_CLOSE, 0, 0);
return 0;
default:
break;
}
MWindow* CreateGameStartWnd(void)
{
UINT8* pHelpInfo = GAME_HELP_PATH;
MWindow* pStartMainWnd=NULL;
if (pStartMainWnd==NULL)
{
pStartMainWnd=MEM_ALLOC(sizeof(MWindow));
if (pStartMainWnd==NULL)
{
printf_0("alloc memory failed!\n");
return NULL;
}
}
memset(pStartMainWnd,0,sizeof(MWindow));
pStartMainWnd=MjWindowCreate(pStartMainWnd,
MJ_WINDOW_NO_BORDER|MJ_WINDOW_HAS_TOOL,
GamestartWnd_CallBack,
(UINT32)NULL,
(UINT8*)"推箱子",
NULL,
pHelpInfo,RGB(0,0,0));
if (pStartMainWnd==NULL)
{
printf_0("window create failed!\n");
return NULL;
}
CreateWindow("BUTTON"," 自由模式",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
120,80,100,40,pStartMainWnd->hViewWnd,ID_FREEMODE_BUTTON ,NULL,NULL);
CreateWindow("BUTTON"," 攻关模式",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
240,80,100,40,pStartMainWnd->hViewWnd,ID_PASSMODE_BUTTON ,NULL,NULL);
MjSetMsgHook(pStartMainWnd,PreTranslateStarWndMessage); //预处理函数挂接
return pStartMainWnd;
//return MjApRun(pStartMainWnd);
}
MWindow* CreateGamePlayWnd(void)
{
UINT8* pHelpInfo = GAME_HELP_PATH;
MWindow* pPlayMainWnd=NULL;
//GamepalyWd *pGameplayWnd;
if (pPlayMainWnd==NULL)
{
pPlayMainWnd=MEM_ALLOC(sizeof(MWindow));
if (pPlayMainWnd==NULL)
{
printf_0("alloc memory failed!\n");
return NULL;
}
}
memset(pPlayMainWnd,0,sizeof(MWindow));
pPlayMainWnd=MjWindowCreate(pPlayMainWnd,
MJ_WINDOW_NO_BORDER|MJ_WINDOW_HAS_TOOL,
GamePlayWnd_CallBack,
(UINT32)NULL,
(UINT8*)"推箱子",
NULL,
pHelpInfo,RGB(0,0,0));
if (pPlayMainWnd==NULL)
{
printf_0("window create failed!\n");
return NULL;
}
CreateWindow("BUTTON","悔步B",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
297,205,50,28,pPlayMainWnd->hViewWnd,ID_REGRET_BUTTON ,NULL,NULL);
CreateWindow("BUTTON","重置R",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
347,205,50,28,pPlayMainWnd->hViewWnd,ID_RESET_BUTTON ,NULL,NULL);
CreateWindow("BUTTON","上一关",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
297,177,50,28,pPlayMainWnd->hViewWnd,ID_PRESTEP_BUTTON ,NULL,NULL);
CreateWindow("BUTTON","下一关",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
347,177,50,28,pPlayMainWnd->hViewWnd,ID_NEXTSTEP_BUTTON ,NULL,NULL);
//CreateWindow("BUTTON","退出*",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
// 420,0,50,30,pPlayMainWnd->hViewWnd,ID_CLOSE_BUTTON ,NULL,NULL);
CreateWindow("EDIT","选 关",WS_CHILD|WS_VISIBLE|ES_LEFT|ES_NUMBER,
298,75,50,30,pPlayMainWnd->hViewWnd,ID_SPEED_EDIT,NULL,NULL);
CreateWindow("BUTTON","确认",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
348,75,50,30,pPlayMainWnd->hViewWnd,ID_CONFIRM_BUTTON,NULL,NULL);
// SendMessage(g_CAlarmGlobal->g_hHourEdit1, EM_LIMITTEXT, 2, 0);
// SendMessage(g_CAlarmGlobal->g_hHourEdit1, WM_SETTEXT, 0, (LPARAM)record[0].m_hour);
SetFocus(pPlayMainWnd->hViewWnd);//设置焦点 游戏界面和按扭截面的切换
MjSetMsgHook(pPlayMainWnd,PreTranslatePlayWndMessage); //预处理函数的挂接
return pPlayMainWnd;
}
LRESULT CALLBACK GamePlayWnd_CallBack(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
CHAR buff[30];
CHAR inputstr;
int x0=MAPSIZEX,y0=MAPSIZEY;
int deltax,deltay;
int rec;
CHAR N;
PAINTSTRUCT ps;
HDC hdc;
HBRUSH hbr;
RECT rect;
POINT CursorPoint;
_POINT manf_p,manff_p;
_POINT CursorPointNum;
static BOOL LButtonDown_Flag=FALSE;
static UCHAR TIMER_START_FLAG=FALSE;
static int timercount=0;
FILE *fp;
memset(buff, 0, 30*sizeof(CHAR));
switch(msg)
{
case WM_CREATE:
//SetTimer(hwnd,1043,1000,NULL);
break;
case WM_TIMER:
switch(LOWORD(wParam))
{
case 1043:
dtime.sec++;
if (dtime.sec>=60)
{
dtime.sec=0;
dtime.min++;
if (dtime.min>=60)
{
dtime.min=0;
dtime.hour++;
}
}
sprintf(buff,"Time %02d:%02d:%02d", dtime.hour, dtime.min, dtime.sec);
hdc=GetDC(hwnd);
SelectObject(hdc, GetSystemFontObject());
SetTextColor(hdc,BLACK);
SetBkColor(hdc,RGB(255,255,255));
TextOut(hdc,300,125,buff,-1);
ReleaseDC(hwnd,hdc);
return TRUE;
case 1044:
if (timercount!=-1)
{
timercount++;
}
if (timercount==5 && g_manstate==MAN_MOVE && REGRET_BUTTON_FLAG==FALSE)
{
g_manstate=MAN_QUIET;
SendMessage(hwnd,WM_PAINT,0,0);
}
if (timercount==5 && g_manstate==MAN_MOVE && REGRET_BUTTON_FLAG==TRUE)
{
REGRET_BUTTON_FLAG=FALSE;
g_manstate=MAN_THINK;
SendMessage(hwnd,WM_PAINT,0,0);
}
if (timercount==1100 && g_manstate==MAN_QUIET )
{
g_manstate=MAN_THINK;
SendMessage(hwnd,WM_PAINT,0,0);
}
return TRUE;
default:
return TRUE;
}
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
SetBkColor(hdc,GRAY_BRUSH);
hbr=(HBRUSH)GetStockObject(GRAY_BRUSH);
GetClientRect(hwnd,&rect);
FillRect(hdc,&rect,hbr);
MjDrawImage(hdc,x0,y0,&image_BOX_BKGROUND);
displayNow(hdc);
SelectObject(hdc, GetSystemFontObject());
SetTextColor(hdc,BLACK);
SetBkColor(hdc,RGB(255,255,255));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -