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

📄 movebak.cpp

📁 2D即时战略游戏源码.仿红色警戒之类的。不过有点粗糙
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
		          { 
			      placetogo.y-=1;
			      soldier->nowdir=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][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=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=DOWN|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==DOWN)
		  { if(soldier->placetogo.x-nowHL.x<-1)
		      {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=RIGHT;
			      //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=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=DOWN|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);}
			  }       //for stop          
				   
		
		else if(soldier->nowdir==(DOWN|UP))
		  {	  if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
		     {if((nowHL.y<=soldier->maxl.y)
			 &&(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)
				    
				        ||
				      ((table[nowHL.x-1+1][nowHL.y+1+1].whatin<HILL)
				      &&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)))
				 
				   {}//   return(objectplace);
				   else
				   { 
				    placetogo.x-=1;
			      
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				    }
				 }
		     
		     else{
		       
			      placetogo.x-=1;
			      soldier->nowdir=DOWN|LEFT;
			      //return(placetogo);
			      } 
			     }  
			     
			 else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)   
			  { 
				   placetogo.y-=1;
				   
				   //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=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==(DOWN|LEFT))
		  {	  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|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[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|RIGHT))
		  {	  
		  if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
		     { 
			      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=DOWN|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=DOWN|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                                 
				      
				      
	 break;
   
   
	   
 //for the west move   
 
 
//for the south move


//if((Lx<=0) && (Ly>=0))
	case SOUTH:
	case WESTSOUTH:
	             
	          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=LEFT; 
			
				
	 if(soldier->nowdir==LEFT||soldier->nowdir==NULL)
		  {//if(IsMovingCar(0,1)==TRUE){placetogo.y=-99;return(placetogo);} 
		  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+1][nowHL.y-1+1].whatin<HILL)
				      &&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
				       {if(((soldier->placetogo.y-nowHL.y)<-1)
				         &&(table[nowHL.x+1+1][nowHL.y-1+1].whatin>=HILL))
				         { 
				          placetogo.y-=1;
			              soldier->nowdir=UP;
				          // return(placetogo);
				           } 
				        else if((soldier->placetogo.y-nowHL.y)>1)
				           { 
				          placetogo.y+=1;
			              soldier->nowdir=DOWN;
				          // return(placetogo);
				           } 
				          else {}//return(objectplace);
				        }
				    else
				   	{ 
				     placetogo.x-=1;
			      
				   	soldier->nowdir=LEFT;
				   	//return(placetogo); 
				   	}    
				        
				         
				 }  
			  else
				   { 
				    placetogo.x-=1;
			      
				   soldier->nowdir=LEFT;
				   //return(placetogo);
				    }
		    } 
			      
		//if(IsMovingCar(1,2)==TRUE){placetogo.y=-99;return(placetogo);} 	      
			else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)   
			  { 
				   placetogo.y+=1;
				   soldier->nowdir=DOWN;
				   //return(placetogo);
				   } 
		//if(IsMovingCar(2,1)==TRUE){placetogo.y=-99;return(placetogo);} 		   
			else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x+=1;
				   soldier->nowdir=RIGHT;
				   //return(placetogo);
				   }
		//if(IsMovingCar(1,0)==TRUE){placetogo.y=-99;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[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(IsMovingCar(1,2)==TRUE){placetogo.y=-99;return(placetogo);} 
		  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))
				 {

⌨️ 快捷键说明

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