亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#實(shí)現(xiàn)打字小游戲

 更新時(shí)間:2020年05月08日 08:37:52   作者:Cocksuck  
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)打字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C#實(shí)現(xiàn)打字小游戲的具體代碼,供大家參考,具體內(nèi)容如下

using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace 打字游戲
{
 public partial class Form1 : Form
 {
  public Form1()
  {
   InitializeComponent();
  }
  //創(chuàng)建飛機(jī)
  PictureBox plan = new PictureBox();
  Button kaiguan = new Button();
  Timer flytime = new Timer();//動(dòng)畫事件
  //創(chuàng)建的得分的label
  Label df = new Label();
  int x = 0;
  //實(shí)例化血條
  Label xt = new Label();
  Label xt1 = new Label();
  int xuetiao = 150;
  int dl = 0;
 
  //產(chǎn)生字母
  private void Form1_Load(object sender, EventArgs e)
  {
   this.KeyPreview = true;
   //游戲區(qū)域
   this.WindowState = FormWindowState.Maximized;
   this.Text = "打字游戲";
   panel1.Size = new Size(1000, 760);
   panel1.BackColor = Color.White;
 
   timer1.Start();
   bird.Tag = "b";
   bird.Width = 229;
 
 
   bird.Height = 111;
   bird.SizeMode = PictureBoxSizeMode.StretchImage;//
   bird.Location = new Point(0, 0);
   panel1.Controls.Add(bird);
   bird.Image = imageList1.Images[0];
 
   
   flytime.Interval = 80;
   //事件的添加:+、=、tab、tab;
   flytime.Tick += Flytime_Tick;
 
   plan.Tag = "plan";
   plan.Size = new Size(100, 100);
   //
   //plan.BackColor = Color.Red;
   plan.Location = new Point(panel1.Width / 2 - plan.Width / 2, panel1.Height - plan.Height);
   plan.Image = Image.FromFile(@"../../img/BP03.png");
   panel1.Controls.Add(plan);
 
   
   kaiguan.Text = "開始游戲";
   kaiguan.Location = new Point(1200,300);
   this.Controls.Add(kaiguan);
   kaiguan.Click += Kaiguan_Click;
 
   
  }
 
  private void Kaiguan_Click(object sender, EventArgs e)
  {
   if (kaiguan.Text=="開始游戲")
   {
    flytime.Start();
    timer2.Start();
    timer3.Start();
    kaiguan.Text = "暫停游戲";
   }
   else if (kaiguan.Text=="暫停游戲")
   {
    flytime.Stop();
    timer2.Stop();
    timer3.Stop();
    kaiguan.Text = "開始游戲";
   }
   //得分欄
   df.Size = new Size(130, 20);
   df.Location = new Point(1138, 210);
   df.Tag = "df";
   df.Text = "得分:0分";
   df.AutoSize = true;
   this.Controls.Add(df);
   //血條欄
   xt.Size = new Size(130,20);
   xt.Location = new Point(1200,500);
   xt.BackColor = Color.White;
   xt1.Size = new Size(130,20);
   xt1.Location=new Point(1200,500);
   xt1.BackColor = Color.Red;
   xt.Tag = "xt";
   xt1.Tag = "xt1";
   this.Controls.Add(xt);
   this.Controls.Add(xt1);
 
 
  }
 
  PictureBox bird = new PictureBox();//顯示動(dòng)畫的容器;
  //動(dòng)畫事件
  int index = 0;
  private void Flytime_Tick(object sender, EventArgs e)
  {
   index++;
   bird.Image = imageList1.Images[index];
   if (index >= 10)
   {
    index = -1;
   }
 
  }
 
  Random r = new Random();
  //鳥的移動(dòng)
  private void timer2_Tick(object sender, EventArgs e)
  {
   bird.Left += 2;
   if (bird.Left >= panel1.Width)
   {
    bird.Left = -bird.Width;
   }
  }
  //字母生成
  private void timer1_Tick_1(object sender, EventArgs e)
  {
   if (bird.Left >= 0 && bird.Left <= panel1.Width - bird.Width)
   {
    //每一個(gè)lebel是一個(gè)字母;
    Label lb = new Label();
    lb.Text = ((char)r.Next(97, 123)).ToString();
    lb.Font = new Font("", r.Next(20, 40));
    lb.Tag = "lb";
    lb.AutoSize = true;
    lb.ForeColor = Color.FromArgb(r.Next(255), r.Next(255), r.Next(255));
    lb.Top = bird.Height;
    lb.Left = bird.Left + bird.Width / 2 - lb.Width / 2;
 
    panel1.Controls.Add(lb);
   }
  }
  //字母下落
  private void timer3_Tick(object sender, EventArgs e)
  {
   //遍歷循環(huán)語法
   foreach (Control item in panel1.Controls)
   {
    //每一個(gè)對(duì)象都有一個(gè)方法GetType
    if (item.GetType().Name == "Label")
    {
     item.Top += 3;
     if (item.Top >= panel1.Height)
     {
      item.Dispose();
      xuetiao -= 10;
      xt.Width = xuetiao;
      dl++;
      if (xt.Width==0)
      {
       flytime.Stop();
       timer2.Stop();
       timer3.Stop();
       MessageBox.Show("Game over");
      }
      
     }
 
    }
    if(item.GetType().Name== "PictureBox")
    {
     if (item.Tag.ToString()=="zd")
     {
      item.Top -= 7;
      if (item.Top+item.Height<=-item.Height)
      {
       item.Dispose();
      }
      foreach (Control ad in panel1.Controls)
      {
       if (ad.Tag.ToString()=="lba")
       {
        if (ad.Top+ad.Height>=item.Top&&item.Left==ad.Left+ad.Width/2-item.Width/2)
        {
         item.Dispose();
         ad.Dispose();
         x += 10;
         df.Text = x.ToString()+"分";
 
         PictureBox baz = new PictureBox();//裝播放爆炸圖片的盒子;
         baz.Tag = 0;
         baz.Image = imageList2.Images[0];
         baz.Size = new Size(90,90);
         baz.SizeMode = PictureBoxSizeMode.StretchImage;
         baz.Location = new Point(ad.Left + ad.Width / 2 - baz.Width/2,ad.Top+ad.Height/2-baz.Height/2) ;
         panel1.Controls.Add(baz);
 
         Timer bofang = new Timer();
         bofang.Start();
         bofang.Interval = 60;
         bofang.Tag = baz;
         bofang.Tick += Bofang_Tick;
;         
        }
       }
      }
      
     }
    }
 
   }
 
  }
 
 
  private void Bofang_Tick(object sender, EventArgs e)
  {
   Timer mnb = (Timer)sender;
   PictureBox picture = (PictureBox)mnb.Tag;
   picture.Image = imageList2.Images[(int)picture.Tag];
   picture.Tag = (int)picture.Tag + 1;
   if ((int)picture.Tag>=31)
   {
    picture.Dispose();
 
    mnb.Dispose();
   }
 
  }
 
  //按鍵消除
  private void Form1_KeyPress(object sender, KeyPressEventArgs e)
  {
   //在按下任意按鍵的時(shí)候,判斷一下本次按鍵值是否有對(duì)應(yīng)的字母;
   //按鍵鍵值
   //被動(dòng)行為
   foreach (Control item in panel1.Controls)
   {
    if (item.GetType().Name == "Label")
    {
     if (item.Text == e.KeyChar.ToString()&&item.Tag.ToString()=="lb")
     {
      item.Tag = "lba";
      plan.Left = item.Left + item.Width / 2 - plan.Width / 2;
      //創(chuàng)建子彈
 
      PictureBox bullet = new PictureBox();
      bullet.Tag = "zd";
      bullet.Size = new Size(6,20);
      bullet.Image = Image.FromFile(@"../../img/Ammo4.png");
      bullet.Location = new Point(plan.Left + plan.Width / 2 - bullet.Width / 2, plan.Top - bullet.Height);
      bullet.SizeMode = PictureBoxSizeMode.StretchImage;
      panel1.Controls.Add(bullet);
      return;
     }
    }
   }
  }
 }

}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 二叉樹的遍歷算法(詳細(xì)示例分析)

    二叉樹的遍歷算法(詳細(xì)示例分析)

    以下代碼是對(duì)二叉樹的遍歷算法進(jìn)行了分析介紹,需要的朋友可以參考下
    2013-05-05
  • C#百萬數(shù)據(jù)查詢出現(xiàn)超時(shí)問題的解決方法

    C#百萬數(shù)據(jù)查詢出現(xiàn)超時(shí)問題的解決方法

    這篇文章主要介紹了C#百萬數(shù)據(jù)查詢出現(xiàn)超時(shí)問題的解決方法,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • 基于Silverlight DataGrid中無代碼設(shè)置開始與結(jié)束日期DatePicker的實(shí)現(xiàn)方法

    基于Silverlight DataGrid中無代碼設(shè)置開始與結(jié)束日期DatePicker的實(shí)現(xiàn)方法

    本篇文章是對(duì)Silverlight DataGrid中無代碼設(shè)置開始與結(jié)束日期DatePicker的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#修改MAC地址類的實(shí)例

    C#修改MAC地址類的實(shí)例

    C#修改MAC地址類的實(shí)例,需要的朋友可以參考一下
    2013-03-03
  • ASP.NET C#中Application的用法教程

    ASP.NET C#中Application的用法教程

    這篇文章主要給大家介紹了關(guān)于ASP.NET C#中Application的用法,在介紹Application的用法之前,先給大家介紹了Session的用法供大家參考學(xué)習(xí),文中介紹的非常詳細(xì),需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-05-05
  • C#自定義Key類型的字典無法序列化的解決方案詳解

    C#自定義Key類型的字典無法序列化的解決方案詳解

    當(dāng)我們使用System.Text.Json.JsonSerializer對(duì)一個(gè)字典對(duì)象進(jìn)行序列化的時(shí)候,默認(rèn)情況下字典的Key不能是一個(gè)自定義的類型,本文整理了幾種解決方案,希望對(duì)大家有所幫助
    2024-03-03
  • C#使用泛型實(shí)現(xiàn)獲取并顯示員工信息

    C#使用泛型實(shí)現(xiàn)獲取并顯示員工信息

    泛型編程是一種編程方式,它利用“參數(shù)化類型”將類型抽象化,從而實(shí)現(xiàn)更為靈活的復(fù)用,泛型是用于處理算法、數(shù)據(jù)結(jié)構(gòu)的一種編程方法,本文給大家介紹了C#使用泛型實(shí)現(xiàn)獲取并顯示員工信息實(shí)例,需要的朋友可以參考下
    2024-02-02
  • java和c#使用hessian通信的方法

    java和c#使用hessian通信的方法

    這篇文章主要介紹了java和c#使用hessian通信的方法,服務(wù)器端為Java,客戶端為C#實(shí)現(xiàn)。是一個(gè)非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • C#文件目錄操作方法匯總

    C#文件目錄操作方法匯總

    本文主要列舉出C#文件和目錄操作的一些方法,包括創(chuàng)建、移動(dòng)、遍歷目錄,讀寫文件等方法,有需要的小伙伴可以學(xué)習(xí)一下。
    2016-04-04
  • C#中的延時(shí)函數(shù)sleep

    C#中的延時(shí)函數(shù)sleep

    這篇文章主要介紹了C#中的延時(shí)函數(shù)sleep用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評(píng)論