简单的别踩白块儿

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BieCaiBaiKuai
{
    public partial class Form1 : Form
    {
        Random g = new Random();
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 游戏开始      
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text=="游戏开始")
            {
                button1.Text = "游戏暂停";
                timer1.Start();
                timer1.Interval = 937;
                timer1.Tick += Timer1_Tick;
                timer2.Start();
                timer2.Interval = 15;
                timer2.Tick += Timer2_Tick;
            }
            else
            {
                button1.Text = "游戏暂停";
                timer1.Stop();
                timer2.Stop();
            }
        }
        /// <summary>
        /// 生成的块下落
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        int sudu = 2;
        private void Timer2_Tick(object sender, EventArgs e)
        {
            foreach (Control item in panel1.Controls)
            {
                //if (item.GetType().Name=="Label")
                //{
                //    if (item.Tag.ToString()=="k"||item.Tag.ToString()=="bai")
                //    {
                //        item.Top++;
                //    }
                //}
            //添加鼠标点击事件
            item.MouseClick += Item_MouseClick;
                item.Top += sudu;
            if (item.Top>=panel1.Height+item.Height)
                {
                    item.Dispose();
                }
            }
        }
        /// <summary>
        /// 黑块的鼠标点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        int zongshu = 0;
        private void Item_MouseClick(object sender, MouseEventArgs e)
        {
            Label xiaochu = (Label)sender;
            if (xiaochu.BackColor==Color.Black)
            {
                xiaochu.BackColor = Color.White;
                zongshu++;
                label2.Text = zongshu.ToString();
            }                         
        }
        
        /// <summary>
        /// 随机生成块
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Timer1_Tick(object sender, EventArgs e)
        {
            //黑块的生成
            Label k = new Label();
            k.Size = new Size(90,120);
            k.BackColor = Color.Black;
            k.Text = " ";
            int p = g.Next(0,4)*90;
            k.Location = new Point(p,-120);
            k.BorderStyle = BorderStyle.FixedSingle;
            k.Tag = "k";
            panel1.Controls.Add(k);                        
            //白块
            Label k1 = Bk();
            Label k2 = Bk();
            Label k3 = Bk();
            switch (p)
            {
                case 0:
                    k1.Location = new Point(90, -120);
                    k2.Location = new Point(180, -120);
                    k3.Location = new Point(270, -120);
                    k1.MouseClick += K1_MouseClick;
                    k2.MouseClick += K2_MouseClick;
                    k3.MouseClick += K3_MouseClick;
                    break;
                case 90:
                    k1.Location = new Point(0, -120);
                    k2.Location = new Point(180, -120);
                    k3.Location = new Point(270, -120);
                    k1.MouseClick += K1_MouseClick;
                    k2.MouseClick += K2_MouseClick;
                    k3.MouseClick += K3_MouseClick;
                    break;
                case 180:
                    k1.Location = new Point(0, -120);
                    k2.Location = new Point(90, -120);
                    k3.Location = new Point(270, -120);
                    k1.MouseClick += K1_MouseClick;
                    k2.MouseClick += K2_MouseClick;
                    k3.MouseClick += K3_MouseClick;
                    break;
                case 270:
                    k1.Location = new Point(0, -120);
                    k2.Location = new Point(90, -120);
                    k3.Location = new Point(180, -120);
                    k1.MouseClick += K1_MouseClick;
                    k2.MouseClick += K2_MouseClick;
                    k3.MouseClick += K3_MouseClick;
                    break;                   
                default:
                    break;                    
            }
            if (zongshu >= 20)
            {
                sudu = 3;
                timer1.Interval = 625;
                label1.Text = "第二关";
            }
            if (zongshu >= 40)
            {
                sudu = 4;
                timer1.Interval = 460;
                label1.Text = "第三关";
            }
            if (zongshu >= 60)
            {
                sudu = 5;
                timer1.Interval = 370;
                label1.Text = "第四关";
            }
            if (zongshu>=80)
            {
                sudu = 6;
                timer1.Interval = 310;
                label1.Text = "Max";
            }
        }
        
        private void K3_MouseClick(object sender, MouseEventArgs e)
        {
            timer1.Stop();
            timer2.Stop();
            panel1.Controls.Clear();
            MessageBox.Show("Game   Over!");
            MessageBox.Show("您的总得分:" + zongshu.ToString());
        }

        private void K2_MouseClick(object sender, MouseEventArgs e)
        {
            timer1.Stop();
            timer2.Stop();
            panel1.Controls.Clear();
            MessageBox.Show("Game   Over!");
            MessageBox.Show("您的总得分:" + zongshu.ToString());
        }

        private void K1_MouseClick(object sender, MouseEventArgs e)
        {
            timer1.Stop();
            timer2.Stop();
            panel1.Controls.Clear();
            MessageBox.Show("Game   Over!");
            MessageBox.Show("您的总得分:" + zongshu.ToString());
        }

        private Label Bk()
        {
            //实例化一个Label    这个Label是生成的白块
            Label bai = new Label();
            bai.Size = new Size(90, 120);
            bai.BackColor = Color.White;
            bai.Tag = "bai";
            bai.BorderStyle = BorderStyle.FixedSingle;
            bai.Text = " ";
            panel1.Controls.Add(bai);
            return bai;
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            panel1.Size = new Size(360,600);
            this.Size = new Size(500,700);
        }
        //重新开始
        private void button2_Click(object sender, EventArgs e)
        {
            //panel1.Controls.Clear();
            //label1.Text = "第一关";
            //label2.Text = "";
            //timer1.Start();
            //timer2.Start();
            Application.Restart();
            
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值