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

📄 elsform.cs

📁 这个源码是我从别的网站下载下来的!我是初学者,希望给我一点源码下载(文件包含连连看,俄罗斯方块,当代罗宾汉,智慧珠,贪吃蛇)
💻 CS
📖 第 1 页 / 共 3 页
字号:
			else
			{				
				//终止下移
				Free[CurrentPic[0].Top/CurrentPic[0].Height,CurrentPic[0].Left/CurrentPic[0].Width] = 1 ;
				Free[CurrentPic[1].Top/CurrentPic[1].Height,CurrentPic[1].Left/CurrentPic[1].Width] = 1 ;
				Free[CurrentPic[2].Top/CurrentPic[2].Height,CurrentPic[2].Left/CurrentPic[2].Width] = 1 ;
				Free[CurrentPic[3].Top/CurrentPic[3].Height,CurrentPic[3].Left/CurrentPic[3].Width] = 1 ;
				//消除满行
				DeleRow();
				//创建新的对象
				TransferPic() ;
				CreatePic() ;				
			}			
			if(Status == 1)
			{	GameTime.Start();	}
		}

		private void ELSForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			int X = CurrentPic[0].Left ;
			int Y = CurrentPic[0].Top  ;
			int i ;
			bool accept ;
			string S = "" ;
			S = e.KeyCode.ToString() ;
			if( S == "Up")
			{
				//对象旋转
				PicOrientation++;
				if(PicOrientation > 4 )	{	PicOrientation = 1 ;	}
				PicShow(X,Y,CurrentType,PicOrientation,CurrentPic);
			}
			if( S == "Left")
			{
				//对象左移				
				if( X > 0)
				{
					X = X - CurrentPic[0].Width ;
					PicShow(X,Y,CurrentType,PicOrientation,CurrentPic);	
				}				
			}
			if( S == "Right")
			{
				//对象右移	
				if( X < PicBox.Width - CurrentPic[0].Width )	
				{
					X = X + CurrentPic[0].Width ;
					PicShow(X,Y,CurrentType,PicOrientation,CurrentPic);	
				}
			}
			if( S == "Down")
			{
				//对象下移
				accept = true ;
				if(CurrentPic[0].Top >= (PicBox.Height - CurrentPic[0].Height))	{	accept = false ;	}
				if(CurrentPic[1].Top >= (PicBox.Height - CurrentPic[1].Height))	{	accept = false ;	}
				if(CurrentPic[2].Top >= (PicBox.Height - CurrentPic[2].Height))	{	accept = false ;	}
				if(CurrentPic[3].Top >= (PicBox.Height - CurrentPic[3].Height))	{	accept = false ;	}
				if(accept)
				{
					if(Free[CurrentPic[0].Top/CurrentPic[0].Height+1,CurrentPic[0].Left/CurrentPic[0].Width] == 1) {	accept = false ;	}
					if(Free[CurrentPic[1].Top/CurrentPic[1].Height+1,CurrentPic[1].Left/CurrentPic[1].Width] == 1) {	accept = false ;	}
					if(Free[CurrentPic[2].Top/CurrentPic[2].Height+1,CurrentPic[2].Left/CurrentPic[2].Width] == 1) {	accept = false ;	}
					if(Free[CurrentPic[3].Top/CurrentPic[3].Height+1,CurrentPic[3].Left/CurrentPic[3].Width] == 1) {	accept = false ;	}
				}				
				if(accept)
				{
					//下移对象
					for(i=0;i<4;i++)
					{				
						CurrentPic[i].Top = CurrentPic[i].Top + CurrentPic[i].Height ;
					}
					//PicShow(X,Y+CurrentPic[0].Height,CurrentType,PicOrientation,CurrentPic);
				}				
			}
		}

		private void PicShow(int X,int Y,int PType,int POrientation,PictureBox[] PBox)
		{
			bool accept = false ;
			switch (PType)
			{
				case 1 :		
					//方块					
					switch (POrientation)
					{
						case 0 :
							//初始
						case 1 :
							//向上							
						case 2 :
							//向右;
						case 3 :
							//向下
						case 4 :
							//向左
							//边界检测
							if(X < 0) 		{	break;	}
							if(X > (PicBox.Width - 2*PBox[0].Width )) 		{	break;	}
							PBox[0].Left	= X;
							PBox[0].Top		= Y;
							PBox[1].Left	= PBox[0].Left + PBox[0].Width ;
							PBox[1].Top		= PBox[0].Top ;
							PBox[2].Left	= PBox[0].Left;
							PBox[2].Top		= PBox[0].Top + PBox[0].Height ;
							PBox[3].Left	= PBox[1].Left;
							PBox[3].Top		= PBox[2].Top;	
							break;
					}		
					PBox[0].Visible = true ;
					PBox[1].Visible = true ;
					PBox[2].Visible = true ;
					PBox[3].Visible = true ;
					break;
				case 2 :		
					//直条						
					switch (POrientation)
					{
						case 0 :
							//初始
							PBox[0].Left	= X;
							PBox[0].Top		= Y;
							PBox[1].Left	= PBox[0].Left ;
							PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
							PBox[2].Left	= PBox[1].Left;
							PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
							PBox[3].Left	= PBox[2].Left;
							PBox[3].Top		= PBox[2].Top + PBox[0].Height ;
							break;
						case 1 :
							//向上
							//边界检测
							if(Y <= (PicBox.Height - 4*PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+3,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left ;
									PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left;
									PBox[3].Top		= PBox[2].Top + PBox[0].Height ;
								}
							}							
							break;
						case 2 :
							//向右
							//边界检测
							if(X >= 3*PBox[0].Width)
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-2] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-3] == 1) {	accept = false ;	}
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left - PBox[0].Width;
									PBox[1].Top		= PBox[0].Top	 ;
									PBox[2].Left	= PBox[1].Left - PBox[0].Width;
									PBox[2].Top		= PBox[1].Top	 ;
									PBox[3].Left	= PBox[2].Left - PBox[0].Width;
									PBox[3].Top		= PBox[2].Top	 ;
								}
							}							
							break;
						case 3 :
							//向下
							//边界检测
							if(Y >= 3*PBox[0].Height)
							{
								accept = true ;
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-3,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left ;
									PBox[1].Top		= PBox[0].Top - PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top - PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left;
									PBox[3].Top		= PBox[2].Top - PBox[0].Height ;
								}
							}			
							break;
						case 4 :
							//向左
							if(X <= (PicBox.Width - 4*PBox[0].Width))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+2] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+3] == 1) {	accept = false ;	}
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left + PBox[0].Width;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left + PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left + PBox[0].Width;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
					}					
					PBox[0].Visible = true ;
					PBox[1].Visible = true ;
					PBox[2].Visible = true ;
					PBox[3].Visible = true ;
					break;
				case 3 :		
					//左Z					
					switch (POrientation)
					{
						case 0 :
							//初始
							PBox[0].Left	= X;
							PBox[0].Top		= Y;
							PBox[1].Left	= PBox[0].Left;
							PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
							PBox[2].Left	= PBox[1].Left - PBox[0].Width;
							PBox[2].Top		= PBox[1].Top ;
							PBox[3].Left	= PBox[2].Left ;
							PBox[3].Top		= PBox[2].Top + PBox[0].Height ;
							break;
						case 1 :
							//向上
							if((X <= (PicBox.Width - 3*PBox[0].Width))&&(Y <= (PicBox.Height - 2*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width+1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width+2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left + PBox[0].Width ;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left + PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}
							break;
						case 2 :
							//向右
							if((X >= PBox[0].Width)&&(Y <= (PicBox.Height - 3*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width-1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+2,X/PBox[0].Width-1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left;
									PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left - PBox[0].Width;
									PBox[2].Top		= PBox[1].Top ;
									PBox[3].Left	= PBox[2].Left ;
									PBox[3].Top		= PBox[2].Top + PBox[0].Height ;
								}
							}
							break;
						case 3 :
							//向下
							if((X >= 2*PBox[0].Width)&&(Y >= PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width-1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width-2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left - PBox[0].Width ;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top - PBox[0].Height;
									PBox[3].Left	= PBox[2].Left - PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top ;
								}
							}							
							break;
						case 4 :
							//向左
							if((X <= (PicBox.Width-2*PBox[0].Width))&&(Y >= 2*PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width+1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width+1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left;
									PBox[1].Top		= PBox[0].Top - PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left + PBox[0].Width;
									PBox[2].Top		= PBox[1].Top;
									PBox[3].Left	= PBox[2].Left;
									PBox[3].Top		= PBox[2].Top - PBox[0].Height;
								}
							}
							break;
					}					
					PBox[0].Visible = true ;
					PBox[1].Visible = true ;
					PBox[2].Visible = true ;
					PBox[3].Visible = true ;
					break;
				case 4 :		
					//右Z					
					switch (POrientation)
					{
						case 0 :
							//初始
							PBox[0].Left	= X;
							PBox[0].Top		= Y;
							PBox[1].Left	= PBox[0].Left;
							PBox[1].Top		= PBox[0].Top + PBox[0].Height ;
							PBox[2].Left	= PBox[1].Left + PBox[0].Width;
							PBox[2].Top		= PBox[1].Top ;
							PBox[3].Left	= PBox[2].Left ;
							PBox[3].Top		= PBox[2].Top + PBox[0].Height ;
							break;
						case 1 :
							//向上
							if((X >= 2*PBox[0].Width)&&(Y <= (PicBox.Height - 2*PBox[0].Height)))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width-1] == 1)	 {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width-1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height+1,X/PBox[0].Width-2] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left - PBox[0].Width ;
									PBox[1].Top		= PBox[0].Top ;
									PBox[2].Left	= PBox[1].Left;
									PBox[2].Top		= PBox[1].Top + PBox[0].Height ;
									PBox[3].Left	= PBox[2].Left - PBox[0].Width ;
									PBox[3].Top		= PBox[2].Top;
								}
							}		
							break;
						case 2 :
							//向右
							if((X >= PBox[0].Width)&&(Y >= 2*PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-1,X/PBox[0].Width-1] == 1) {	accept = false ;	}
								if(Free[Y/PBox[0].Height-2,X/PBox[0].Width-1] == 1) {	accept = false ;	}								
								if(accept)
								{
									PBox[0].Left	= X;
									PBox[0].Top		= Y;
									PBox[1].Left	= PBox[0].Left;
									PBox[1].Top		= PBox[0].Top - PBox[0].Height ;
									PBox[2].Left	= PBox[1].Left - PBox[0].Width;
									PBox[2].Top		= PBox[1].Top;
									PBox[3].Left	= PBox[2].Left;
									PBox[3].Top		= PBox[2].Top - PBox[0].Height;
								}
							}
							break;
						case 3 :
							//向下
							if((X <= (PicBox.Width - 3*PBox[0].Width))&&(Y >= PBox[0].Height))
							{
								accept = true ;
								if(Free[Y/PBox[0].Height,X/PBox[0].Width+1] == 1) {	accept = false ;	}

⌨️ 快捷键说明

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