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

📄 lbhform.cs

📁 这个源码是我从别的网站下载下来的!我是初学者,希望给我一点源码下载(文件包含连连看,俄罗斯方块,当代罗宾汉,智慧珠,贪吃蛇)
💻 CS
📖 第 1 页 / 共 2 页
字号:
			Lev			= 1 ;			
			BulletNum	= 5 ;
			Success		= 0 ;
			TopDirection= 1 ;
			PowerNum	= 0 ;
			DirectionNum= 0 ;
		}

		private void Target_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			//将Target对象外观改为圆形
			GraphicsPath gp = new GraphicsPath();
  		gp.AddEllipse(0, 0, 100, 100);
  		Region r = new Region(gp);
  		Target.Region  = r;	
		}
		private void ButBegin_Click(object sender, System.EventArgs e)
		{	
			Lev				= 1 ;
			BulletNum		= 5 ;
			PassNum			= 0 ;
			Success			= 0 ;
			TopDirection	= 1 ;
			BulletNumShow.Text = BulletNum.ToString();
			CurrentSuccessShow.Text =  "0";
			LevSuccessShow.Text = "0";
			/*
				//在Target对象上画同心圆
				Graphics Palette = Target.CreateGraphics() ;
				Palette.Clear(Color.White);
				//SolidBrush myBrush = new SolidBrush(Color.White);
				//Palette.FillEllipse(myBrush,0,0,100,100);			
				Pen myPen = new Pen(Color.Red);
				myPen.Width = 1;
				Palette.DrawArc(myPen,0,0,100,100,0,360);
				Palette.DrawArc(myPen,5,5,90,90,0,360);
				Palette.DrawArc(myPen,10,10,80,80,0,360);
				Palette.DrawArc(myPen,15,15,70,70,0,360);
				Palette.DrawArc(myPen,20,20,60,60,0,360);
				Palette.DrawArc(myPen,25,25,50,50,0,360);
				Palette.DrawArc(myPen,30,30,40,40,0,360);
				Palette.DrawArc(myPen,35,35,30,30,0,360);
				Palette.DrawArc(myPen,40,40,20,20,0,360);
				Palette.DrawArc(myPen,45,45,10,10,0,360);
			*/
			//开始游戏
			ShowStart() ;
			ShootRange.Enabled	= true ;
			Target.Enabled		= true ;
			Target.Visible		= false ;
			Target.Visible		= true ;
			GameTime.Start() ;
		}

		private void ButEnd_Click(object sender, System.EventArgs e)
		{
			//退出游戏
			this.Close();
		}		

		private void GameTime_Tick(object sender, System.EventArgs e)
		{
			//移动Target对象
			Target.Left = Target.Left + Lev ;
			if(Target.Top <= 0)	{	TopDirection = 1 ;	}
			if(Target.Top >= (ShootRange.Height - Target.Height))	{	TopDirection = 0 ;	}
			if(TopDirection == 1 )
			{
				//向下
				Target.Top = Target.Top + Lev ;
			}
			if(TopDirection == 0 )
			{
				//向上
				Target.Top = Target.Top - Lev ;
			}
			//边界检测
			if(Target.Left >= ShootRange.Width)
			{				
				GameTime.Stop();
				ShowStart() ;
				//开始游戏
				GameTime.Start() ;
			}
		}

		private void ShootRange_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			//减少一发子弹
			BulletNum--;
			if(BulletNum == 0)
			{
				GameTime.Stop();
				if(Pass())
				{
					//进入下一级
					Lev++;
					if(Lev == 10)
					{
						MessageBox.Show("恭喜您已经打通所有级别,请转玩其它游戏吧!");
						GameStop();
					}
					else
					{
						MessageBox.Show("进入下一级别!");
						BulletNum = 5 ;
						PassNum = 0;
						BulletNumShow.Text = BulletNum.ToString();
						ShowStart();
					}
				}
				else
				{
					MessageBox.Show("Game Over!");
					GameStop();
				}
			}
			else
			{
				ShowStart();
				CurrentSuccessShow.Text =  "0";
				Target.Visible = false ;
				Target.Visible = true ;
				BulletNumShow.Text = BulletNum.ToString();
			}
		}
		
		private void Target_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			//处理打靶事件
			GameTime.Stop();
			int X,Y,Distance;
			Distance = 0;
			X = e.X ;
			Y = e.Y ;
			Wind(ref X,ref Y);
			//在打击点画点
			Graphics Palette = Target.CreateGraphics() ;
			SolidBrush myBrush = new SolidBrush(Color.Black);
			Palette.FillEllipse(myBrush,X,Y,5,5);	
			Thread.Sleep(500);
			//应用两点间距离公式
			X = X - 50 ;
			X = Math.Abs(X);
			X = X*X ;
			Y = Y - 50 ;
			Y = Math.Abs(Y);
			Y = Y*Y ;
			Distance = X + Y;
			Distance = (int)Math.Sqrt(Distance) ;
			//计算所打环数				
			if(Distance >= 50) {	Distance = 49 ;}
			Distance = Distance/5 ;
			Distance = 10 - Distance ;
			PassNum = PassNum + Distance ;
			Success = Success + Distance ;
			SuccessShow.Text = Success.ToString();
			CurrentSuccessShow.Text = Distance.ToString() ;
			LevSuccessShow.Text = PassNum.ToString();					

			//减少一发子弹
			BulletNum--;
			if(BulletNum == 0)
			{
				if(Pass())
				{
					//进入下一级
					Lev++;
					if(Lev == 10)
					{
						MessageBox.Show("恭喜您已经打通所有级别,请转玩其它游戏吧!");
						GameStop();
					}
					else
					{
						MessageBox.Show("进入下一级别!");
						BulletNum = 5 ;
						BulletNumShow.Text = BulletNum.ToString();
						PassNum = 0; 
						ShowStart();
					}
				}
				else
				{
					MessageBox.Show("Game Over!");
					GameStop();
				}
			}
			else
			{
				//置Target初始状态
				ShowStart();
				Target.Visible = false ;
				Target.Visible = true ;
				BulletNumShow.Text = BulletNum.ToString();
			}
			GameTime.Start();
		}
		private void ShowStart()
		{
			//清空图像
			Graphics Palette = Target.CreateGraphics() ;
			Palette.Clear(Color.Transparent);
			//设定起点
			Random NumRand	= new Random();
			Target.Top		= NumRand.Next(0,150) ;	
			Target.Left		= 0 ;
			//设定风力、风向
			PowerNum		= NumRand.Next(0,3) ;
			DirectionNum	= NumRand.Next(0,8) ;
			PowerNumShow.Text = PowerNum.ToString();
			switch (DirectionNum)
			{
				case 0 :
					DirectionNumShow.Text = "无风";
					break;
				case 1 :
					DirectionNumShow.Text = "北风";
					break;
				case 2 :
					DirectionNumShow.Text = "东北风";
					break;
				case 3 :
					DirectionNumShow.Text = "东风";
					break;
				case 4 :
					DirectionNumShow.Text = "东南风";
					break;
				case 5 :
					DirectionNumShow.Text = "南风";
					break;
				case 6 :
					DirectionNumShow.Text = "西南风";
					break;
				case 7 :
					DirectionNumShow.Text = "西风";
					break;
				case 8 :
					DirectionNumShow.Text = "西北风";
					break;
			}
		}

		private void GameStop()
		{
			GameTime.Stop();			
			Target.Visible		= false ;
			Target.Enabled		= false ;
			ShootRange.Enabled	= false ;		
		}
		private bool Pass()
		{
			switch (Lev)
			{
				case 1 :
					if(PassNum >= 43)
					{	return true ;	}
					break;
				case 2 :
					if(PassNum >= 40)
					{	return true ;	}
					break;
				case 3 :
					if(PassNum >= 35)
					{	return true ;	}
					break;
				case 4 :
					if(PassNum >= 30)
					{	return true ;	}
					break;
				case 5 :
					if(PassNum >= 25)
					{	return true ;	}
					break;
				case 6 :
					if(PassNum >= 20)
					{	return true ;	}
					break;
				case 7 :
					if(PassNum >= 15)
					{	return true ;	}
					break;
				case 8 :
					if(PassNum >= 10)
					{	return true ;	}
					break;
				case 9 :
					if(PassNum >= 10)
					{	return true ;	}
					break;					
			}
			return false ;
		}				
		private void Wind(ref int x,ref int y)
		{
			switch (DirectionNum)
			{
				case 0 :
					break;
				case 1 :
					y = y - PowerNum*5;
					break;
				case 2 :
					x = x + PowerNum*5;
					y = y - PowerNum*5;
					break;
				case 3 :
					x = x + PowerNum*5;
					break;
				case 4 :
					x = x + PowerNum*5;
					y = y + PowerNum*5;
					break;
				case 5 :
					y = y + PowerNum*5;
					break;
				case 6 :
					x = x - PowerNum*5;
					y = y + PowerNum*5;
					break;
				case 7 :
					x = x - PowerNum*5;
					break;
				case 8 :
					x = x - PowerNum*5;
					y = y - PowerNum*5;
					break;
			}
		}
	}
}

⌨️ 快捷键说明

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