C# 打字练习(WinForm)快速打字小游戏,输入正确自动爆炸效果
zhezhongyun 2025-06-23 23:41 3 浏览
打字游戏窗体初始化:
public int k;
PictureBox pic = new PictureBox();//生成飞机控件
private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;//始终让窗体获取焦点
timer1.Start();
timer2.Start();
pic.Size = new Size(100, 100); //设置飞机属性
pic.BackgroundImage = Image.FromFile("C:/Users/Admin/Desktop/第二打/第二打/bin/Debug/IMGE/99.jpg");//引用图片的位置
pic.BackgroundImageLayout = ImageLayout.Stretch;//设置图片布局为拉伸
pic.Left = pictureBox1.Width / 2 - pic.Width / 2;
pic.Top = pictureBox1.Height - pic.Height;
pic.Tag = "kk";//进行标记
pictureBox1.Controls.Add(pic);
}
添加时间控件1:
private void timer2_Tick(object sender, EventArgs e)
{
foreach (Control item in pictureBox1.Controls)
{
if (item.Tag.ToString() == "mu" || item.Tag.ToString() == "xia")//tag为我们想要的zimu
{
item.Top += 8;//控制其下降10个像素
if (item.Top >= pictureBox1.Height) //为了避免子弹多发,当第一次字母落下时将其资源释放掉
{
item.Dispose();//释放资源
}
}
if (item.Tag.ToString() == "zi")
{
item.Top -= 30;//子弹上升8像素
foreach (Control zimu in pictureBox1.Controls)
{
if (zimu.Tag.ToString() == "xia")//改变后可以知道是否是按下的那个字母
{
if (item.Top <= zimu.Top + zimu.Height && item.Left + item.Width / 2 == zimu.Left + zimu.Width / 2)//判断其高度
{
item.Dispose();//释放资源
zimu.Dispose();//释放资
//设置爆炸效果
PictureBox bm = new PictureBox();
bm.Tag = "bomd";
bm.Size = new Size(60, 60);
bm.Image = imageList1.Images[0];//存储爆炸的图片
bm.Tag = 0;
bm.Left = zimu.Left + zimu.Width / 2 - bm.Width / 2;
bm.Top = zimu.Top + zimu.Height / 2 - bm.Height / 2;
bm.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox1.Controls.Add(bm);
System.Windows.Forms.Timer Mm = new System.Windows.Forms.Timer();//计时器用于爆炸图片
Mm.Start();
Mm.Interval = 50;
Mm.Tick += Mm_Tick;//timer事件
Mm.Tag = bm;//将其打包直接丢给下一个引用
}
}
}
添加时间控件2:
private void timer1_Tick(object sender, EventArgs e)
{
Label mu = new Label();//实例化label用于存储字母
mu.Text = ((char)QQ.Next(97, 123)).ToString() + ((char)QQ.Next(97, 123)).ToString();//随机生成小写字母
mu.Font = new Font("仿体", QQ.Next(25, 35));//字母的字体设置
mu.ForeColor = Color.FromArgb(QQ.Next(255), QQ.Next(255), QQ.Next(255));//设置字母的随机颜色
mu.Left = QQ.Next(pictureBox1.Width - mu.Width);//设置位置
mu.AutoSize = true;//自适应大小
mu.Tag = "mu";//进行标记
mu.BorderStyle = BorderStyle.None;
mu.BackColor = Color.FromArgb(QQ.Next(255), QQ.Next(255), QQ.Next(255));
pictureBox1.Controls.Add(mu);
}
时间控件3:
private void Mm_Tick(object sender, EventArgs e)
{
System.Windows.Forms.Timer bom = (System.Windows.Forms.Timer)sender;//事件的发起者
PictureBox photo = (PictureBox)bom.Tag;//转化为picturebox类型
photo.Image = imageList1.Images[(int)photo.Tag];//选择照片
photo.Tag = (int)photo.Tag + 1;//照片加1
if ((int)photo.Tag > 5)
{
bom.Dispose();
photo.Dispose();
}
}
//设置随机数用于字母的一系列随机
Random pP = new Random();
Random QQ = new Random();
按下键盘对应字母:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
foreach (Control item in pictureBox1.Controls)//遍历寻找装zimu控件
{
if (item.Text == textBox1.Text.ToString() && item.Tag.ToString() == "mu")//按下的键盘字母对应zimu
{
item.Tag = "xia";//改变按下的字母的tag
pic.Left = item.Left + item.Width / 2 - pic.Width / 2;//设置飞机移动
PictureBox dzd = new PictureBox();//装子弹的容器
dzd.Size = new Size(20, 20);//不能调换顺序,必须有大小才可以运用
dzd.Left = pic.Left + pic.Width / 2 - dzd.Width / 2;//设置子弹的位置
dzd.BackgroundImage = Image.FromFile("C:/Users/Admin/Desktop/第二打/第二打/bin/Debug/IMGE/66.jpg");//设置子弹的图片
dzd.BackgroundImageLayout = ImageLayout.Stretch;//设置图片的拉伸
dzd.Top = pic.Top - 50;//设置子弹的高度
dzd.Tag = "zi";
pictureBox1.Controls.Add(dzd);
return;//防止相同字母一次发射多个子弹
}
}
}
输入键盘对应字母:
private void textBox1_TextChanged(object sender, EventArgs e)
{
foreach (Control item in pictureBox1.Controls)//遍历寻找装zimu控件
{
if (item.Text == textBox1.Text.ToString() && item.Tag.ToString() == "mu")//按下的键盘字母对应zimu
{
item.Tag = "xia";//改变按下的字母的tag
pic.Left = item.Left + item.Width / 2 - pic.Width / 2;//设置飞机移动
PictureBox dzd = new PictureBox();//装子弹的容器
dzd.Size = new Size(20, 20);//不能调换顺序,必须有大小才可以运用
dzd.Left = pic.Left + pic.Width / 2 - dzd.Width / 2;//设置子弹的位置
dzd.BackgroundImage = Image.FromFile("C:/Users/Admin/Desktop/第二打/第二打/bin/Debug/IMGE/66.jpg");//设置子弹的图片
dzd.BackgroundImageLayout = ImageLayout.Stretch;//设置图片的拉伸
dzd.Top = pic.Top - 50;//设置子弹的高度
dzd.Tag = "zi";
pictureBox1.Controls.Add(dzd);
if (textBox1.TextLength == 2)
textBox1.Text = "";
return;//防止相同字母一次发射多个子弹
}
else if (textBox1.TextLength == 3)
textBox1.Text = "";
}
相关推荐
- 自助机网络监控(自助设备监控)
-
今日领导打电话说上次的自助机修好了,今天又不行了,这是第二次打电话了。目前也没有其他人反馈这个机器的问题。于是我就想能不能根据IP去ping这个自助机的网络是否正常,如果不正常,关机了就自动给我发到科...
- C# 打字练习(WinForm)快速打字小游戏,输入正确自动爆炸效果
-
打字游戏窗体初始化:publicintk;PictureBoxpic=newPictureBox();//生成飞机控件privatev...
- 这三款颜值极高的工具完美契合win10风格,逼格满满
-
今天介绍三款开源软件让你的Windows10逼格再飞跃一个等级,而且功能与颜值兼具!ModernFlyouts这是一款Windows10弹出UI的替代品,比原生UI更漂亮、更现代。提示框的位置可以随意...
- VC界面开发组件Xtreme Toolkit Pro全新发布v17.0.0
-
Codejock软件公司的XtremeToolkitPro是屡获殊荣的VC界面库,是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的VisualC++MFC控件,...
- 字体|好看的英文字体合集(四)(最好看的十种英文字体)
-
电脑里的字体不在于多而在精,拥有10000个字体不用的话也是浪费,找起来也不容易,只有经常使用的才是好字体。获取方式:私31.潮流赛博朋克金属字体32.潮流创意可扩展英文字体StretchPro3...
- Qt5 C++入门教程-第13章 自定义控件(Custom Widgets)
-
大道至简,在Qt5C++入门教程的这一部分,我们将创建一个自定义部件。大多数工具包通常仅提供诸如按钮、文本部件或滑块等最常见的部件。没有哪个工具包能够提供所有可能的部件。程序员必须自行创建此类部件...
- 艾灸的美容养生功效(艾灸美容养颜)
-
艾灸,属于医外治物理疗法,通过百草之王艾草和13种名贵中草药特制成香条状,点燃以温热刺激患处四周或相关穴位,帮助人体全面温通经络,从而加速皮肤的血液循环,淡化色斑。艾灸疗法-温和灸1.四白穴:四白...
- 你可能不知道的10个CSS3中的隐藏特性
-
CSS3为web设计增添了许多令人惊叹的特性,这其中你经常会用到box-shadow(图层阴影),border-radius(边框圆角),transform(变形)这一类受欢迎的常用特性。但是还有一些...
- 不会才学-4 Tkinter 控件1一Label、Button、Entry
-
一、标签控件(Label)序号可选项&描述1anchor文本或图像在背景内容区的位置,默认为center,可选值为(n,s,w,e,ne,nw,sw,se,center)eswn是东南西北英文...
- 从0到1建立一张评分卡之可视化分析
-
上一篇文章介绍了如何进行数据预处理,接下来介绍如何进行探索性数据分析。探索性数据分析又叫EDA,即ExploratoryDataAnalysis。其实数据预处理也属于EDA的一部分,EDA的目...
- 高温致日本冲绳最大珊瑚群90%白化褪色
-
来源:新华网高温致日本冲绳最大珊瑚群90%白化褪色A+A-分享2016-09-0412:50:53 来源:新华网查看原文<divclass="video-box"data-vid="...
- 学习笔记(十七)|PPT考点总结(ppt.1)
-
分享兴趣,传播快乐,增长见闻,留下美好!亲爱的您,这里是LearningYard学苑。今天小编为大家带来“学习笔记(十七)|PPT考点总结”,欢迎您的访问。Shareyourinterests,...
- 史上最全的浏览器兼容性问题和解决方案
-
微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●浏览器兼容性问题是指因为不同的浏览器对同一段CSS代码解析不同导致页面显示效果不统一...
- 304071纽郎缝包机送料牙架(缝包机送料牙更换)
-
portant;white-space:normal;font-size-adjust:none;font-stretch:normal;background-color:rgb(25...
- 安卓手机微信设置字体大小导致页面错位的解决方案
-
切图网专注网页切图、小程序切图服务,在最近的客户反应中,当安卓手机设置字体大小以后,会导致从微信公众号进入的页面也会字体放大,导致页面的不同程度的错位,要想解决这个问题,可以通过代码解决,ios相对简...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)