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

📄 movebak.cpp

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


//if((Lx<=0) && (Ly<=0))

   case WEST: 
   case WESTNORTH:          
                      
		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(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)<=0)
			          &&((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=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=LEFT;
				        //return(placetogo);
				         }
		        
				             
				   }    
				  else
				   { 
				    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=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[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)<-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)
				        &&((soldier->placetogo.x-nowHL.x)<-1) )
				        {}//return(objectplace);
				      else if((soldier->placetogo.x-nowHL.x)>1)
				        {   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=RIGHT;
				         	//return(placetogo);
				         	}
				       }  
				      else {}
				         //return(objectplace);
				      
				      }
				   else
				   { 
				    placetogo.x-=1;
			      
				   soldier->nowdir=LEFT;
				   //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=LEFT;
				   //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[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==RIGHT)
		  {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=RIGHT;
				   //return(placetogo);
				   } 
			else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)        
				  { 
				   placetogo.x-=1;
				   soldier->nowdir=DOWN|LEFT;
				   //return(placetogo);
				   } 

⌨️ 快捷键说明

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