delphi实例2 键盘打字练习_第1页
delphi实例2 键盘打字练习_第2页
delphi实例2 键盘打字练习_第3页
delphi实例2 键盘打字练习_第4页
delphi实例2 键盘打字练习_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实例二

键盘打字练习【程序说明】相信在大家在刚接触电脑时都用过打字软件,这些软件的作用主要是用来熟悉键盘的。知道这个最终目的之后,我们也就可以模仿制作一个类似的小游戏软件了。本例实现的这个键盘练习软件除了可以设置难易度之外,还可以更换界面背景、控制声音的播放与否和字母颜色。程序运行结果如图2-1所示。图2-1

键盘打字练习【编程思路】一般而言,游戏界存在这样的一个规律:好的游戏=优秀的游戏设计思想精美的游戏的素材可靠的程序代码,三者缺一不可。这里抛开空洞的理论,只就本例的这个小程序而言。下面就是本例的设计思想和特点:1、程序运行后,窗口中间的图像上就有四个不断变化的字母从上向下运动。当从键盘上输入的字母与这四个字母的某一个相同时(大小写敏感),窗口的标题栏就会出现正确与否的提示信息。2、本例通过TrackBar可以控制游戏的难度,通过ColorBox可以设置字母的颜色,通过RadioButton控制声音的播放与否,2个Button则随时可以控制游戏的开始和停止。游戏软件的编写时间并不长,而且一个好的游戏产品就是一个不断升级和完善的过程。因此,世界上没有一个十全十美的游戏。本例虽然比较粗糙,但是基本的游戏操作和设置都有所涉及。【编程步骤】.1.选择File|New|Application,新建一个应用程序。2.添加控件和界面布局。向Form上添加10个Label,3个Button,2个RadioButton,1个Image、Timer、ColorBox和OpenPictureDialog。控件和界面布局可参考图2-2。图2-2

控件和窗口布局3.控件主要属性设置。参照表2-1设置各控件的主要属性。表2-1

本例控件的主要属性设置控件名(Name)属性属性值Label1、Label2Label3、Label4CaptionTrackBar1Max2Timer1EnabledFalseForm1KeyPreviewTrue(关键)特别要说明的是:Form1的KeyPreview要设置为True,否则键盘事件在Form1上无效。4.编写代码。(1)双击Button1(“开始游戏”),然后添加下列代码以响应OnClick事件,对各控件进行相关的设置之后再开启TcedureTForm1.Button1Click(Sender:TObject);begin//开始游戏Label1.Top:=25;Label2.Top:=25;Label3.Top:=25;Label4.Top:=25;//难易度设置,只要控制Timer的Interval即可IfTrackBar1.Position=0ThenTimer1.Interval:=1000;IfTrackBar1.Position=1ThenTimer1.Interval:=500;IfTrackBar1.Position=2ThenTimer1.Interval:=200;Timer1.Enabled:=True;end;(2)双击Timer1,然后添加下列代码以响应OnTimer事件,实现字母的随机出现。procedureTForm1.Timer1Timer(Sender:TObject);var

ch1,ch2,ch3,ch4:char;beginRandomize;//随机显示大小写字母ch1:=chr(65Random(25));

//大写ch2:=chr(97Random(25));

//小写ch3:=chr(65Random(25));ch4:=chr(97Random(25));//对4个Label赋值Label1.Caption:=ch1;//关键句Label2.Caption:=ch2;Label3.Caption:=ch3;Label4.Caption:=ch4;//指定4个Label的初始X值Label1.Left:=100;Label2.Left:=150;Label3.Left:=200;Label4.Left:=250;//当4个Label到达底端时,再重新从顶端开始下移Iflabel1.Top<250ThenLabel1.Top:=Label1.TopRandom(10)Else

Label1.Top:=10;Iflabel2.Top<250ThenLabel2.Top:=Label2.TopRandom(10)ElseLabel2.Top:=10;Iflabel3.Top<250ThenLabel3.Top:=Label3.TopRandom(10)Else

Label3.Top:=10;Iflabel4.Top<250ThenLabel4.Top:=Label4.TopRandom(10)Else

Label4.Top:=10;end;(3)下面是本例的关键代码,即Form1的OnKeyPress事件。游戏开始后,看准画面上下落的字母,快速地从键盘上输入,如果键盘输入与下落字母相同,则显示正确信息,否则显示打错了的信息。由于这里用到了声音播放函数——sndplaysound,所以必须在uses中加入cedureTForm1.FormKeyPress(Sender:TObject;varKey:Char);beginifkey=label1.CaptionThenBeginCaption:='你打对了'label1.Caption;IfRadioButton1.CheckedThensndplaysound('success.wav',SND_ASYNC);endElseifkey=label2.CaptionThenBeginCaption:='你打对了'label2.Caption;IfRadioButton1.CheckedThensndplaysound('success.wav',SND_ASYNC);endElseifkey=label3.CaptionThenBeginCaption:='你打对了'label3.Caption;IfRadioButton1.CheckedThensndplaysound('success.wav',SND_ASYNC);endElseifkey=label4.CaptionThenBeginCaption:='你打对了'label4.Caption;IfRadioButton1.CheckedThensndplaysound('success.wav',SND_ASYNC);endElseBeginCaption:='太烂了,一个都没有对';IfRadioButton1.CheckedThensndplaysound('fail.wav',SND_ASYNC);end;end;(4)双击Button2(“停止游戏”),然后添加下列代码以响应OnClick事件,清空Label中的内容,并停止计时。procedureTForm1.Button2Click(Sender:TObject);begin

//停止游戏Timer1.Enabled:=False;Label1.Caption:='';Label2.Caption:='';Label3.Caption:='';Label4.Caption:='';end;(5)本例还有画面和字母颜色设置功能。下面的两段代码就实现这方面的功能。procedureTForm1.Button3Click(Sender:TObject);beginIfOpenPictureDialog1.ExecuteThenImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);//更换背景图片end;procedureTForm1.ColorBox1Change(Sender:TObject);begin//设置字母颜色Label1.Font.Color:=ColorBox1.Selected;Label2.Font.Color:=ColorBox1.Selecte

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论