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

📄 movebak.cpp

📁 2D即时战略游戏源码.仿红色警戒之类的。不过有点粗糙
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		        return(placetogo);
		      }  
		  else      {placetogo.x=-1;
				 return(placetogo);}
			  }       //for stop          
		 
		 
	   else if(soldier->nowdir==(UP|RIGHT))
		  { if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
		     { 
			      placetogo.y-=1;
			      soldier->nowdir=UP;
			      //return(placetogo);
			      } 
			      
		 else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)   
			  { 
				   placetogo.x+=1;
				   soldier->nowdir=UP|RIGHT;
				   //return(placetogo);
				   } 
				   
		  else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)        
				  { 
				   placetogo.y+=1;
				   soldier->nowdir=UP|DOWN;
				   //return(placetogo);
				   }
		  else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x-=1;
				   soldier->nowdir=UP|LEFT;
				   //return(placetogo);
				   } 
		 else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		    ||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      ||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      ||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      }  
		   else 	   {placetogo.x=-1;
				 return(placetogo);}
			  }       //for stop              
				      
				      
	      else if(soldier->nowdir==(UP|LEFT))
		  {	  if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
		     { 
			      placetogo.y+=1;
			      soldier->nowdir=UP|DOWN;
			      //return(placetogo);
			      } 
			      
		  else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)   
			  { 
				   placetogo.x-=1;
				   soldier->nowdir=UP|LEFT;
				   //return(placetogo);
				   } 
		else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)        
				  { 
				   placetogo.y-=1;
				   soldier->nowdir=UP;
				   //return(placetogo);
				   }
		  else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x+=1;
				   soldier->nowdir=UP|RIGHT;
				   //return(placetogo);
				   } 
				   
				   
		 else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		     ||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      ||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      ||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      } 	   
		  else 
		  
		     {placetogo.x=-1;
				 return(placetogo);}
			  }       //for stop                                 
				      
				      
		
	   break;       
 //for the north move 
// if((Lx>=0) && (Ly<=0))
   case NORTH:
   case EASTNORTH: 
   
   
	  if(((soldier->placetogo.x-nowHL.x)<=1)
		      &&((soldier->placetogo.x-nowHL.x)>=-1)
		      &&((soldier->placetogo.y-nowHL.y)<=1)
		      &&((soldier->placetogo.y-nowHL.y)>=-1))
		   { if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		     &&(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      &&(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      &&(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      } 
		    
		
		   
		   
		   
		   else if(table[soldier->placetogo.x+1][soldier->placetogo.y+1].whatin<HILL)
		    {
		   
		   
		   if((diret==EASTSOUTH)
		      &&(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
		      &&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL))
		      return(objectplace);
		   else if((diret==WESTSOUTH)
		      &&(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
		      &&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL))
		      return(objectplace);
		   else if((diret==WESTNORTH)
		      &&(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
		      &&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
		      return(objectplace); 
		   else if((diret==EASTNORTH)
		      &&(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
		      &&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
		      return(objectplace);              
		   else if((diret==EAST)||(diret==SOUTH)
			   ||(diret==WEST)||(diret==NORTH))
			   
			   return(objectplace);
	      
		    }
		     
		     
		        
		     else {placetogo.x=-1;
		    		return(placetogo);
			     	 }
			}
			
		 	
			
				 			    
		else if((soldier->maxl.x==0)&&(soldier->maxl.y==0))
			soldier->nowdir=RIGHT;                  
      
	   if(soldier->nowdir==RIGHT||soldier->nowdir==NULL)
		  {  if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
		     {
			      if((table[nowHL.x+1+1][nowHL.y-1+1].whatin<HILL)
				  &&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL) )
			       {if(((soldier->placetogo.y-nowHL.y)<-1)
			           &&((soldier->placetogo.x-nowHL.x)>=1))
			           {}//  return(objectplace);
				      
				    else if((table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
				        &&(table[nowHL.x+1+1][nowHL.y+1+1].whatin<HILL))
				      {if(((soldier->placetogo.y-nowHL.y)>0) 
				          && (table[nowHL.x+1-1][nowHL.y+1+1].whatin>=HILL))
				           { 
				            placetogo.y+=1;
			      
				            soldier->nowdir=DOWN;
				            //return(placetogo);
				             }
				        else if((soldier->placetogo.y-nowHL.y)<0)
				            { 
				            placetogo.y-=1;
			      
				            soldier->nowdir=UP;
				            //return(placetogo);
				             }
				        else {}//return(objectplace);
				      } 
				    else { 
				         placetogo.x+=1;
			      
				  		 soldier->nowdir=RIGHT;
				 		 // return(placetogo);
				 		 }
				    
				      
				   }    
				  else
				   { 
				    placetogo.x+=1;
			      
				   soldier->nowdir=RIGHT;
				   return(placetogo); }
				 } 
			      
			 else if(table[nowHL.x+1][nowHL.y].whatin<HILL)   
			    { 
				   placetogo.y-=1;
				   soldier->nowdir=UP;
				  // return(placetogo);
				   } 
			else  if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x-=1;
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				   }
			else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)        
				  { 
				   placetogo.y+=1;
				   soldier->nowdir=DOWN;
				   //return(placetogo);
				   
				   } 
			   
			else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		     ||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      ||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      ||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      } 
			 else {placetogo.x=-1;
				 return(placetogo);}
			  }       //for stop          
				   
	       
	       
	       
		else if(soldier->nowdir==UP)
		  {	  
		  if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
		     
		     {
			      if((nowHL.y<=soldier->maxl.y)
				 &&(table[nowHL.x+1+1][nowHL.y-1+1].whatin<HILL)
				  &&(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL))
				 {
				 if(((soldier->placetogo.y-nowHL.y)<-1)
				     &&((soldier->placetogo.x-nowHL.x)>=0))
				     {}// return(objectplace);
				      
				  else if((table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
				      &&(table[nowHL.x+1+1][nowHL.y+1+1].whatin<HILL))
				   {if((soldier->placetogo.x-nowHL.x)>=0)
				         {}//return(objectplace);
				   else if(table[nowHL.x+1-1][nowHL.y+1].whatin>=HILL)
				    {  
				    placetogo.y-=1;
			      
				   soldier->nowdir=UP;
				   //return(placetogo);
				    }  
				   else
				   { 
				    placetogo.x-=1;
			      
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				    }
				 
				   }
				   else
				   { 
				    placetogo.x+=1;
			      
				   soldier->nowdir=RIGHT;
				   //return(placetogo);
				    }
				   
				   }
			      else { 
				    placetogo.y-=1;
			      
				 soldier->nowdir=DOWN|UP;
				 //return(placetogo);
				 }
			     }        
			     
			else  if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)   
			  { 
				   placetogo.x+=1;
				   soldier->nowdir=RIGHT;
				   //return(placetogo);
				   } 
			else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x-=1;
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				   }
			else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)        
				  { 
				   placetogo.y+=1;
				   soldier->nowdir=DOWN;
				   //return(placetogo);
				   } 
			   
			else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		     ||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      ||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      ||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      } 
			   else {placetogo.x=-1;
				 return(placetogo);}
			  }       //for stop             
			  
			  
			  
		 else if(soldier->nowdir==LEFT)
		  { 
		  
		  if(soldier->placetogo.y-nowHL.y>1)
		    {if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)        
				  { 
				   placetogo.y+=1;
				   soldier->nowdir=DOWN;
				//   return(placetogo);
				   }
			else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)   
			  { 
				   placetogo.x-=1;
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				   } 	   
		    else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)        
				  { 
				    placetogo.x+=1;
				   soldier->nowdir=DOWN|RIGHT;
				   //return(placetogo);
				   } 
			else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
		     { 
			      placetogo.y-=1;
			      soldier->nowdir=UP;
			      //return(placetogo);
			      } 
			  else {placetogo.x=-1;
				 return(placetogo);}
			 }
		
			else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
		     { 
			      placetogo.y-=1;
			      soldier->nowdir=UP;
			      //return(placetogo);
			      } 
			else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)   
			  { 
				   placetogo.x-=1;
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				   } 
			else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)        
				  { 
				   placetogo.y+=1;
				   soldier->nowdir=DOWN;
				   //return(placetogo);
				   }
		   else	if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)        
				  { 
				    placetogo.x+=1;
				   soldier->nowdir=DOWN|RIGHT;
				   //return(placetogo);
				   } 
			   
		    else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		     ||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      ||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      ||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      } 
			   else {placetogo.x=-1;
				 return(placetogo);}
			  }       //for stop          
				   
		 
		
			else if(soldier->nowdir==DOWN)
		  {if(soldier->placetogo.x-nowHL.x>1)
		     { 
		     if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x+=1;
				   soldier->nowdir=RIGHT;
				   //return(placetogo);
				   } 
			else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)   
			  { 
				   placetogo.y+=1;
				   soldier->nowdir=DOWN;
				   //return(placetogo);
				   } 	   
			else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
		     { 
			      placetogo.x-=1;
			      soldier->nowdir=LEFT;
			      //return(placetogo);
			      } 
			else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)        
				  { 
				    placetogo.y-=1;
				   soldier->nowdir=DOWN|UP;
				   //return(placetogo);
				   } 
			   
			else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
		     ||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
		      ||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
		      ||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
		      {placetogo.y=-99;
		        return(placetogo);
		      } 
			   else {placetogo.x=-1;
				 return(placetogo);}    	   
		     }  
		     
			else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
		     { 
			      placetogo.x-=1;
			      soldier->nowdir=LEFT;
			      //return(placetogo);

⌨️ 快捷键说明

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