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();
        }

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

猜你喜欢