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

📄 javatuixiangzi.txt

📁 Java代码做的推箱子小游戏
💻 TXT
📖 第 1 页 / 共 2 页
字号:
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 + -