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

📄 box1.cpp

📁 非常经典的小游戏代码, 推球的,for WindowsCE
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				  SetFocus(hwnd);	
			      init_flag = 0;
				  break;
		     case IDC_NEXT:
				  pass_flag=0;
		          nRoom ++;
				  if(nRoom >= ROOMMAX)
					 nRoom = ROOMMAX;
				  hdc=GetDC(hwnd);
				  bGO=TRUE;
				  PatBlt(hdc,0,MENUTOP,480,200,WHITENESS);
		          GraphInit(hdc);
                  CarrInit(hdc);
				  ReleaseDC(hwnd,hdc);
				  SetFocus(hwnd);
				  init_flag = 0;
				  break;
			 case IDM_EXIT:
				  SendMessage(hwnd, WM_CLOSE, 0, 0);
				  break;
		 	 default:
				  return DefWindowProc(hwnd, msg, wp, lp);
			}
			break;

		case WM_CLOSE:
			 DestroyWindow(hwnd);
			 for(i=0;i<6;i++)
             {
			     DeleteObject(element[i]);
			 }
			 DeleteObject(hTDesktop);
		     return(DefWindowProc(hwnd, msg, wp, lp));
 
		case WM_DESTROY:
			 PostQuitMessage(0);
			 break;
			
		default:
			 return DefWindowProc(hwnd, msg, wp, lp);
	}
	return 0;
} /* WndProc()
   */


void GraphInit(HDC hdc)
{
    int i, j;
	int num=0,num1=0;
    int column_i = 0 , row_j = 0,begin=0 ;
	HDC hMemDC;
   	BITMAP  bm;  
	
	column_i = 10;
	row_j    = 25 ;
	
	hMemDC=CreateCompatibleDC(hdc);

	if(pass_flag==0)
	{
      for(i = 0; i < column_i; i ++)
	  {
		for(j = 0 ; j < row_j; j ++)
		{
			if(nRoom == 1)
				Temp_buf[i][j] = Graph_buf1[i][j];
		    if(nRoom == 2)
				Temp_buf[i][j] = Graph_buf2[i][j];
			if(nRoom == 3)
				Temp_buf[i][j] = Graph_buf3[i][j];
		    if(nRoom == 4)
				Temp_buf[i][j] = Graph_buf4[i][j];
			if(nRoom == 5)
				Temp_buf[i][j] = Graph_buf5[i][j];
		    if(nRoom == 6)
				Temp_buf[i][j] = Graph_buf6[i][j];
			if(nRoom == 7)
				Temp_buf[i][j] = Graph_buf7[i][j];
		    if(nRoom == 8)
				Temp_buf[i][j] = Graph_buf8[i][j];
			if(nRoom == 9)
				Temp_buf[i][j] = Graph_buf9[i][j];
		    if(nRoom == 10)
				Temp_buf[i][j] = Graph_buf10[i][j];
			if(nRoom == 11)
				Temp_buf[i][j] = Graph_buf11[i][j];
			if(nRoom == 12)
				Temp_buf[i][j] = Graph_buf12[i][j];
		    if(nRoom == 13)
				Temp_buf[i][j] = Graph_buf13[i][j];
			if(nRoom == 14)
				Temp_buf[i][j] = Graph_buf14[i][j];
		    if(nRoom == 15)
				Temp_buf[i][j] = Graph_buf15[i][j];
			if(nRoom == 16)
				Temp_buf[i][j] = Graph_buf16[i][j];
		    if(nRoom == 17)
				Temp_buf[i][j] = Graph_buf17[i][j];
/*			if(nRoom == 18)
				Temp_buf[i][j] = Graph_buf18[i][j];*/
		}
	  }
	  	 for(i=0;i<40;i++)
			Temp_Term[i]=0;
		 for(i=0;i<20;i++)
			Temp_Term1[i]=0;
	}
	
       for(i = 0; i < column_i; i ++)
       {
   		   for(j = 0; j < row_j; j ++)
               {
                   switch(Temp_buf[i][j])
                   {
                         case SPACE:
                              hStep=element[SPACE];
                              break;
                         case BUG:
                              hStep=element[BUG];
							  box_col = i;
							  box_row = j;
                              break;
						 case BOX:
                              hStep=element[BOX];
                              break;
                         case WALL:
                              hStep=element[WALL];
                              break;
						 case TERM:
                              hStep=element[TERM];
							  Temp_Term[num]=i;
							  Temp_Term[num+1]=j;
							  num+=2;
                              break;
                         case TERM1:
                              hStep=element[TERM1];
							  Temp_Term1[num1]=i;
							  Temp_Term1[num1+1]=j;
							  num1+=2;
                              break;
				   }  
			
			     SelectObject(hMemDC,hStep);
				 GetObject(hStep,sizeof(BITMAP),(LPSTR)&bm);
			     StretchBlt(hdc,CARR_WI*j,MENUTOP+CARR_WI*i,bm.bmWidth,bm.bmHeight,
							hMemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
	
				 if(pass_flag==1)
				{
					hStep=element[BUG];
					SelectObject(hMemDC,hStep);
					BitBlt(hdc,carrier.x*CARR_WI,carrier.y*CARR_WI+MENUTOP,CARR_WI,CARR_WI,
							 hMemDC,0,0,SRCCOPY);
					carrier.undo_flag = 0;
				}

               }
       }
    DeleteDC(hMemDC);
}

void CarrInit(HDC hdc)
{
  RECT   rect;
  TCHAR  levelstr[12];
  
	
  rect.left  = 380;
  rect.right = 480;
  rect.top   = 38;
  rect.bottom = 80;
    
  if(pass_flag == 0)
  {
  carrier.x = box_row;
  carrier.y = box_col;

  carrier.last_x=carrier.x;
  carrier.last_y=carrier.y;
 
  carrier.direction=Dn;
  carrier.action_num_D=1;
  carrier.action_num_U=1;
  carrier.action_num_L=1;
  carrier.action_num_R=1;
  
//  _itow(nRoom,(unsigned short*)Level_buf, 10);
  wsprintf(levelstr,TEXT("LEVEL %d"),nRoom);
  DrawText(hdc,levelstr,-1,&rect,DT_BOTTOM|DT_SINGLELINE);
  }
}

void GraphUpdate(HDC hdc)
{
    int i, j;
	int num=0,num1=0;
    int column_i = 0 , row_j = 0,begin=0 ;
	RECT   rect;
	TCHAR  levelstr[12];
	HDC hMemDC;
   	BITMAP  bm;  
	
	rect.left  = 380;
	rect.right = 480;
	rect.top   = 38;
	rect.bottom = 80;

	column_i = 10;
	row_j    = 25 ;
	
	hMemDC=CreateCompatibleDC(hdc);

       for(i = 0; i < column_i; i ++)
       {
   		   for(j = 0; j < row_j; j ++)
               {
                   switch(Temp_buf[i][j])
                   {
                         case SPACE:
                              hStep=element[SPACE];
                              break;
                         case BUG:
                              hStep=element[BUG];
							  box_col = i;
							  box_row = j;
                              break;
						 case BOX:
                              hStep=element[BOX];
                              break;
                         case WALL:
                              hStep=element[WALL];
                              break;
						 case TERM:
                              hStep=element[TERM];
							  Temp_Term[num]=i;
							  Temp_Term[num+1]=j;
							  num+=2;
                              break;
                         case TERM1:
                              hStep=element[TERM1];
							  Temp_Term1[num1]=i;
							  Temp_Term1[num1+1]=j;
							  num1+=2;
                              break;
				   }  
			
			     SelectObject(hMemDC,hStep);
				 GetObject(hStep,sizeof(BITMAP),(LPSTR)&bm);
			     StretchBlt(hdc,CARR_WI*j,MENUTOP+CARR_WI*i,bm.bmWidth,bm.bmHeight,
							hMemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
			
				 if(carrier.direction == Up)
						hStep=element[BUG];
				 if(carrier.direction == Dn)
 						hStep=element[BUGDN];
				 if(carrier.direction == Lt)
						hStep=element[BUGLF];
				 if(carrier.direction == Rt)
						hStep=element[BUGRH];
		
				 SelectObject(hMemDC,hStep);
				 BitBlt(hdc,carrier.x*CARR_WI,carrier.y*CARR_WI+MENUTOP,CARR_WI,CARR_WI,
						 hMemDC,0,0,SRCCOPY);
				 carrier.undo_flag = 0;
			
               }
       }
	   wsprintf(levelstr,TEXT("LEVEL %d"),nRoom);
	   DrawText(hdc,levelstr,-1,&rect,DT_BOTTOM|DT_SINGLELINE);
	   DeleteDC(hMemDC);
}


 LRESULT CALLBACK SelectRoom(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch(message)
	{
        case WM_INITDIALOG:
			SetDlgItemInt(hwnd,IDC_ROOM,1,FALSE);
            return (FALSE);
        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDOK:
                    {
					 int room=0;
					 room=GetDlgItemInt(hwnd,IDC_ROOM,NULL,FALSE);
					 nRoom=room;
					 EndDialog(hwnd, 0);
					 init_flag = 0;
					}
			        return (TRUE);
			
				case IDCANCEL:
                     EndDialog(hwnd, 0);
					 init_flag = 1;
//					 SendMessage(hwndMain,WM_CLOSE,0,0);//Exit the game.
			         return (TRUE);
								
				default:break; 
			}
		    break; 
			
        case WM_CLOSE:
	         EndDialog(hwnd,TRUE);
	    	 return TRUE;
	
		case WM_SYSCOMMAND:
             switch (wParam)
				{
					case SC_CLOSE:
                    EndDialog(hwnd, 0);
                    return (TRUE);
			    }
			 break;
                 
	}

    return (FALSE);
} // SelectRoom().



 LRESULT CALLBACK AboutCleaner(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch(message)
	{
       case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDOK:
                     EndDialog(hwnd, TRUE);
			         return TRUE;
			}
		    break; 
	  
	   case WM_CLOSE:
	        EndDialog(hwnd,TRUE);
	     	return TRUE;	
	}

    return (FALSE);
} // AboutCleaner().


LRESULT CALLBACK HowPlay(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch(message)
	{
       case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDOK:
                     EndDialog(hwnd, TRUE);
			         return TRUE;
			}
		    break; 
	  
	   case WM_CLOSE:
	        EndDialog(hwnd,TRUE);
	     	return TRUE;	
	}

    return (FALSE);
}//HowPlay();


⌨️ 快捷键说明

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