C#实现打字游戏
本文实例为大家分享了C#实现打字游戏的具体代码,供大家参考,具体内容如下
思路:
1、有一个游戏界面,我用panel作为游戏界面
2、开始生成字母
打字游戏的字母是不断生成的,所以用计时器timer来生成字母
所有生成的字母设置tag方便寻找
3、字母下落
字母下落是一个持续的动作,所以也在计时器里做
在计时器里通过foreach遍历panel中的所有控件,同时通过tag找到字母,让字母下降
4、生成子弹
通过获取键盘事件生成子弹
5、子弹与字母相碰
代码:
privatevoidForm1_Load(objectsender,EventArgse) { this.panel1.BackColor=Color.White; timer1.Start(); timer2.Start(); timer1.Interval=1000; timer2.Interval=100; fj.Tag="feiji"; fj.Size=newSize(30,40); fj.BackColor=Color.Black; fj.Text="飞机"; fj.TextAlign=ContentAlignment.MiddleCenter; fj.ForeColor=Color.White; fj.Location=newPoint(panel1.Width/2-fj.Width/2,panel1.Height-fj.Height); panel1.Controls.Add(fj); } Labelfj=newLabel(); Randomr=newRandom(); privatevoidtimer1_Tick(objectsender,EventArgse) { Labelzm=newLabel(); zm.Tag="zimu"; zm.Text=((char)r.Next(97,123)).ToString(); zm.Font=newFont("",r.Next(20,30)); zm.AutoSize=true; zm.Location=newPoint(r.Next(0,panel1.Width-zm.Width),0); zm.ForeColor=Color.FromArgb(r.Next(255),r.Next(255),r.Next(255)); panel1.Controls.Add(zm); } privatevoidtimer2_Tick(objectsender,EventArgse) { foreach(Controliteminpanel1.Controls) { if(item.Tag.ToString()=="zimu"||item.Tag.ToString()=="zzm") { item.Top+=5; if(item.Top>=panel1.Height) { item.Dispose(); } }elseif(item.Tag.ToString()=="zidan") { item.Top-=9; foreach(Controlconinpanel1.Controls) { if(con.Tag.ToString()=="zzm") { if(con.Top+con.Height>=item.Top) { con.Dispose(); item.Dispose(); SoundPlayerply=newSoundPlayer(); ply.SoundLocation=".../.../Sound/MyBomb.wav"; ply.Play(); } } } } } } privatevoidForm1_KeyPress(objectsender,KeyPressEventArgse) { foreach(Controliteminpanel1.Controls) { if(item.Tag.ToString()=="zimu") { if(item.Text==e.KeyChar.ToString()) { Labelzd=newLabel(); zd.Tag="zidan"; zd.Size=newSize(20,20); item.Tag="zzm"; zd.BackColor=Color.Red; zd.Location=newPoint(item.Left+item.Width/2-zd.Width/2,fj.Top-fj.Height); fj.Left=item.Left+item.Width/2-fj.Width/2; panel1.Controls.Add(zd); return; } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。