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

📄 tcsform.cs

📁 这个源码是我从别的网站下载下来的!我是初学者,希望给我一点源码下载(文件包含连连看,俄罗斯方块,当代罗宾汉,智慧珠,贪吃蛇)
💻 CS
📖 第 1 页 / 共 2 页
字号:
					break;
				case 4:
					//向左
					myArray[0] =  new Point(15,  0) ;
					myArray[1] =  new Point(0 ,  7) ;
					myArray[2] =  new Point(0 ,  8) ;
					myArray[3] =  new Point(15 , 15) ;
					break;
			}			
			GraphicsPath gp			= new GraphicsPath();  		
			gp.AddPolygon(myArray);
  		Region r				= new Region(gp);
  		SnakeHead.Region		= r;	
		}

		private void SnakeTail_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			//画蛇头的外观			
			PictureBox SnakeHead	= (PictureBox)sender ;
			Point[] myArray			= new Point[4] ;
			switch(Snake[LenSnake].Direction)
			{
				case 1:
					//向上
					myArray[0] =  new Point(0 ,  0) ;
					myArray[1] =  new Point(7 , 15) ;
					myArray[2] =  new Point(7 , 15) ;
					myArray[3] =  new Point(15 , 0) ;					
					break;
				case 2:
					//向右
					myArray[0] =  new Point(15,  0) ;
					myArray[1] =  new Point(0 ,  7) ;
					myArray[2] =  new Point(0 ,  7) ;
					myArray[3] =  new Point(15 , 15) ;
					break;
				case 3:
					//向下
					myArray[0] =  new Point(0 , 15) ;
					myArray[1] =  new Point(7 ,  0) ;
					myArray[2] =  new Point(8 ,  0) ;
					myArray[3] =  new Point(15 ,15) ;
					break;
				case 4:
					//向左
					myArray[0] =  new Point(0 ,  0) ;
					myArray[1] =  new Point(15,  7) ;
					myArray[2] =  new Point(15,  8) ;
					myArray[3] =  new Point(0 , 15) ;
					break;
			}			
			GraphicsPath gp			= new GraphicsPath();  		
			gp.AddPolygon(myArray);
  		Region r				= new Region(gp);
  		SnakeHead.Region		= r;	
		}
		private void TCSForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			//响应键盘
			string S = "" ;
			S = e.KeyCode.ToString() ;
			if( S == "Up")
			{
				//蛇头向上
				if(Snake[0].Direction != 3 )
				{
					DataRow workRow			= Inflexion.NewRow();
					workRow["X"]			= Snake[0].Pic.Left ;
					workRow["Y"]			= Snake[0].Pic.Top  ;
					workRow["Direction"]	= 1 ;
					Inflexion.Rows.Add(workRow) ;
				}				
			}			
			if( S == "Right")
			{
				//蛇头向右
				if(Snake[0].Direction != 4 )
				{
					DataRow workRow			= Inflexion.NewRow();
					workRow["X"]			= Snake[0].Pic.Left ;
					workRow["Y"]			= Snake[0].Pic.Top  ;
					workRow["Direction"]	= 2 ;
					Inflexion.Rows.Add(workRow) ;
				}
			}
			if( S == "Down")
			{
				//蛇头向下
				if(Snake[0].Direction != 1 )
				{
					DataRow workRow			= Inflexion.NewRow();
					workRow["X"]			= Snake[0].Pic.Left ;
					workRow["Y"]			= Snake[0].Pic.Top  ;
					workRow["Direction"]	= 3 ;
					Inflexion.Rows.Add(workRow) ;
				}
			}
			if( S == "Left")
			{
				//蛇头向左
				if(Snake[0].Direction != 2 )
				{
					DataRow workRow			= Inflexion.NewRow();
					workRow["X"]			= Snake[0].Pic.Left ;
					workRow["Y"]			= Snake[0].Pic.Top  ;
					workRow["Direction"]	= 4 ;
					Inflexion.Rows.Add(workRow) ;
				}
			}
		}
		private void Initialize()
		{
			//游戏初始化
			//参数初始化
			LenSnake	= 0  ;//蛇身共0节
			LenNode		= 15 ;//每节15象素
			Inflexion.Clear();
			Snake = new SnakeType[1000];

			//清空现有元素
			while (Lawn.Controls.Count > 0)
			{
				Lawn.Controls[0].Dispose();
			}						
			//生成蛇
			CreateSnake();
			//生成蛋
			CreateEgg();
		}
		private void GameStop()
		{
			//游戏结束
			GameTime.Stop();
			MessageBox.Show("游戏结束!");			
		}
		private void CreateEgg()
		{
			//创建蛋	
			Egg					= new PictureBox() ;		
			Egg.Visible			= false;
			Egg.Name			= "Egg";									
			Egg.BackColor		= System.Drawing.Color.Yellow ;
			Egg.ClientSize		= new Size(15, 15);
			Egg.Parent			= Lawn ;
			Egg.Paint 		   += new System.Windows.Forms.PaintEventHandler(this.Egg_Paint);	
			MoveEgg();
		}

		private void CreateSnake()
		{
			//创建蛇
			int i;
			//创建蛇头
			Snake[LenSnake].Direction		= 3 ; 
			Snake[LenSnake].Pic 			= new PictureBox() ;
			Snake[LenSnake].Pic.Name		= "SnakeHead";									
			Snake[LenSnake].Pic.BackColor	= System.Drawing.Color.Transparent ;
			Snake[LenSnake].Pic.ClientSize	= new Size(15, 15);
			Snake[LenSnake].Pic.Parent		= Lawn ;
			Snake[LenSnake].Pic.Paint	   += new System.Windows.Forms.PaintEventHandler(this.SnakeHead_Paint);
			MoveSnake(1,3,Snake[LenSnake].Pic);
			Snake[LenSnake].Pic.Left		= 0 ;
			Snake[LenSnake].Pic.Top 		= (3 + 1 ) * LenNode ;
			Snake[LenSnake].Pic.Visible		= true;
			LenSnake++;
			//创建 3 节蛇身
			for(i=1;i<=3;i++)
			{
				Snake[LenSnake].Direction		 = 3 ;
				Snake[LenSnake].Pic				= new PictureBox() ;
				Snake[LenSnake].Pic.Name		= "SnakeSkin"+LenSnake.ToString() ;									
				Snake[LenSnake].Pic.BackColor	= System.Drawing.Color.Transparent ;
				Snake[LenSnake].Pic.ClientSize	= new Size(15, 15);
				Snake[LenSnake].Pic.Parent		= Lawn ;
				MoveSnake(2,3,Snake[LenSnake].Pic);
				Snake[LenSnake].Pic.Left		= 0 ;
				Snake[LenSnake].Pic.Top 		= (3 - i + 1 ) * LenNode ;
				Snake[LenSnake].Pic.Visible		= true;
				LenSnake++;
			}
			//创建蛇尾
			Snake[LenSnake].Direction		= 3 ;
			Snake[LenSnake].Pic				= new PictureBox() ;
			Snake[LenSnake].Pic.Name			= "SnakeTail";									
			Snake[LenSnake].Pic.BackColor	= System.Drawing.Color.Transparent ;
			Snake[LenSnake].Pic.ClientSize	= new Size(15, 15);
			Snake[LenSnake].Pic.Parent		= Lawn ;
			Snake[LenSnake].Pic.Paint	   += new System.Windows.Forms.PaintEventHandler(this.SnakeTail_Paint);
			MoveSnake(3,3,Snake[LenSnake].Pic);
			Snake[LenSnake].Pic.Left		= 0 ;
			Snake[LenSnake].Pic.Top 		= 0 ;
			Snake[LenSnake].Pic.Visible		= true;
		}
		private void MoveEgg()
		{
			//移动蛋
			Egg.Visible			= false ;
			Random NumRand		= new Random();
			int XNum			= Lawn.Width/LenNode  - 1 ;
			int YNum			= Lawn.Height/LenNode - 1 ;
			int i				= 0 ;
			int X				= 0 ;
			int Y				= 0 ;
			bool sure			= true ;
			bool GTime			= false ;
			//确定显示坐标			
			if(GameTime.Enabled == true)
			{
				GTime = true ;
				GameTime.Stop();
			}
			while (sure)
			{				
				X	= NumRand.Next(0,XNum) ;	
				Y	= NumRand.Next(0,YNum) ;
				X	= X * LenNode ;
				Y	= Y * LenNode ;
				for(i=0;i<LenSnake;i++)
				{
					if((Snake[i].Pic.Left == X)&&(Snake[i].Pic.Top == Y))
					{						
						break;
					}
				}
				if(i == LenSnake)
				{
					sure = false ;
				}
			}
			Egg.Left			= NumRand.Next(1,XNum) * LenNode;	
			Egg.Top 			= NumRand.Next(1,YNum) * LenNode;
			Egg.Visible			= true;
			if(GTime == true)
			{	
				GameTime.Start(); 
			}
		}
		private void MoveSnake(int type,int Direction,PictureBox TmpPic)
		{
			//生成蛇图
			Bitmap MyImage ;
			MyImage	= new Bitmap(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"images\TCS\SnakeSkin.jpg");
			switch(type)
			{
				case 1:
					//蛇头
					MyImage	= new Bitmap(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"images\TCS\SnakeHead.jpg");					
					break;
				case 2:
					//蛇身
					MyImage	= new Bitmap(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"images\TCS\SnakeSkin.jpg");				
					break;
				case 3:
					//蛇尾
					MyImage	= new Bitmap(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"images\TCS\SnakeTail.jpg");
					break;
			}
			switch(Direction)
			{
				case 1:
					//向上
					MyImage.RotateFlip(RotateFlipType.Rotate270FlipNone);
					break;
				case 2:
					//向右
					break;
				case 3:
					//向下
					MyImage.RotateFlip(RotateFlipType.Rotate90FlipNone);
					break;
				case 4:
					//向左
					MyImage.RotateFlip(RotateFlipType.Rotate180FlipNone);
					break;
			}
			TmpPic.Image = MyImage ;
		}	
	
		private void SnakeAdd()
		{
			//增加蛇身长度
			//蛇尾变蛇身
			int left,top;
			left							= Snake[LenSnake].Pic.Left ;
			top						 		= Snake[LenSnake].Pic.Top ;
			Snake[LenSnake].Pic.Dispose() ;
			Snake[LenSnake].Pic				= new PictureBox() ;
			Snake[LenSnake].Pic.Name		= "SnakeSkin"+LenSnake.ToString() ;									
			Snake[LenSnake].Pic.BackColor	= System.Drawing.Color.Transparent ;
			Snake[LenSnake].Pic.ClientSize	= new Size(15, 15);
			Snake[LenSnake].Pic.Parent		= Lawn ;
			MoveSnake(2,3,Snake[LenSnake].Pic);
			Snake[LenSnake].Pic.Left		= left ;
			Snake[LenSnake].Pic.Top 		= top  ;
			Snake[LenSnake].Pic.Visible		= true;
			LenSnake++;
			//生成蛇尾
			Snake[LenSnake].Direction		= Snake[LenSnake - 1].Direction ;
			Snake[LenSnake].Pic				= new PictureBox() ;
			Snake[LenSnake].Pic.Name		= "SnakeTail";									
			Snake[LenSnake].Pic.BackColor	= System.Drawing.Color.Transparent ;
			Snake[LenSnake].Pic.ClientSize	= new Size(15, 15);
			Snake[LenSnake].Pic.Parent		= Lawn ;
			Snake[LenSnake].Pic.Paint	   += new System.Windows.Forms.PaintEventHandler(this.SnakeTail_Paint);
			MoveSnake(3,Snake[LenSnake].Direction,Snake[LenSnake].Pic);
			//定位蛇尾位置
			switch (Snake[LenSnake].Direction)
			{
				case 1:
					//向上
					Snake[LenSnake].Pic.Left	= Snake[LenSnake-1].Pic.Left ;
					Snake[LenSnake].Pic.Top		= Snake[LenSnake-1].Pic.Top  + LenNode ;
					break;
				case 2:
					//向右
					Snake[LenSnake].Pic.Left	= Snake[LenSnake-1].Pic.Left - LenNode ;
					Snake[LenSnake].Pic.Top		= Snake[LenSnake-1].Pic.Top  ;
					break;
				case 3:
					//向下
					Snake[LenSnake].Pic.Left	= Snake[LenSnake-1].Pic.Left ;
					Snake[LenSnake].Pic.Top		= Snake[LenSnake-1].Pic.Top  - LenNode ;
					break;
				case 4:
					//向左
					Snake[LenSnake].Pic.Left	= Snake[LenSnake-1].Pic.Left + LenNode ;
					Snake[LenSnake].Pic.Top		= Snake[LenSnake-1].Pic.Top  ;
					break;
			}			
			Snake[LenSnake].Pic.Visible		= true;
		}		
	}
}

⌨️ 快捷键说明

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