欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#实现打字小游戏(一)

程序员文章站 2022-07-16 18:54:46
...

先附上两张截图
C#实现打字小游戏(一)C#实现打字小游戏(一)
这里主要是针对C#计时器的使用
初始时间我们定为三分钟这里用label标签来显示英文字母

 public void initlabel()
        {
            let1.Top = 25;
            let2.Top = 28;
            let3.Top = 24;
            let4.Top = 24;
            //getlet()是获取英文字母
            let1.Text = getlet().ToString();
            let2.Text = getlet().ToString();
            let3.Text = getlet().ToString();
            let4.Text = getlet().ToString();
            //利用随机数产生颜色
            let1.ForeColor = Color.FromArgb(rd.Next(0,256),rd.Next(0,256),rd.Next(0,256));
            let2.ForeColor = Color.FromArgb(rd.Next(0,256), rd.Next(0,256), rd.Next(0,256));
            let3.ForeColor = Color.FromArgb(rd.Next(0, 256), rd.Next(0, 256), rd.Next(0, 256));
            let4.ForeColor = Color.FromArgb(rd.Next(0, 256), rd.Next(0, 256), rd.Next(0, 256));

        }
        private char getlet()
        {
        //随机产生字母
            return Convert.ToChar(rd.Next(65,90));
            throw new NotImplementedException();
        }

这样就完成了标签的初始化,然后使用计时器来控制降落速度


            if(let1.Bottom <= this.Height)
            {
                let1.Top += 10;
                let2.Top += 10;
                let3.Top += 10;
                let4.Top += 10;
            }else
            {
                initlabel();
            }
//这里都是控制时间的显示(倒计时三分钟),这个要再创建一个计时器
if (n == 0)
            {
                n = 60;
                m -= 1;
            }
            n -= 1;
            label5.Text = h + " : " + m + " : " + n;

            if (h < 10 || m < 10 || n < 10)
            {
            //这些为了显示好看,因为小于是10的时候只显示一个数字,前面加上0
                if (h < 10)
                    label5.Text = "0" + h + " : " + m + " : " + n;
                if (m < 10)
                    label5.Text = h + " : " + "0" + m + " : " + n;
                if (n < 10)
                    label5.Text = h + " : " + m + " : " + "0" + n;
                if (n < 10 && h < 10)
                    label5.Text = "0" + h + " : " + m + " : " + "0" + n;
                if (m < 10 && h < 10)
                    label5.Text = "0" + h + " : " + "0" + m + " : " + n;
                if (m < 10 && n < 10)
                    label5.Text = h + " : " + "0" + m + " : " + "0" + n;
                if (h < 10 && m < 10 && n < 10)
                    label5.Text = "0" + h + " : " + "0" + m + " : " + "0" + n;
            }

然后是当键盘输入正确时让标签重新初始化

private void MainForm_KeyPress(object sender, KeyPressEventArgs e)
        {
            num++;//记录点击次数
            //如果输入正确
            if (e.KeyChar == Convert.ToChar(let1.Text)||e.KeyChar== Convert.ToChar(let2.Text)||
                e.KeyChar == Convert.ToChar(let3.Text) || e.KeyChar == Convert.ToChar(let4.Text))
            {
                if(e.KeyChar == Convert.ToChar(let1.Text))
                {
                    initlabel(let1);
                    gnum++; //这里都是记录正确的个数
                }
                else if(e.KeyChar == Convert.ToChar(let2.Text))
                {
                    initlabel(let2);
                    gnum++;
                }else if(e.KeyChar == Convert.ToChar(let3.Text))
                {
                    initlabel(let3);
                    gnum++;
                }else if (e.KeyChar == Convert.ToChar(let4.Text))
                {
                    initlabel(let4);
                    gnum++;
                }
            }
            textBox1.Text = num.ToString();
            textBox2.Text = gnum.ToString();
        }

最后就是模式的选择:简单,中等,困难
里面以共有四个标签,简单显示两个,中等三个,困难四个还有他们的降落速度也是递增的
其他的都是一些小细节了(开始,暂停等)在此就不演示了