- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实例5–打地鼠(界面实现)
实例五 打地鼠(界面实现部分)
【程序说明】
打地鼠是一个以前非常流行的游戏,这个游戏的版本也是层出不穷。虽然游戏界面一直在变换,但是它的核心代码却变化不大。由于程序的完整代码较长,这里分两个实例来说明这个游戏:界面实现部分和主体部分。前者主要讲解游戏的界面是如何实现的,后者则阐述游戏的主要设计思想和具体的实现代码。本例的程序运行结果如图4-1所示。
图5-1 打地鼠
【编程思路】
一个成功的游戏除了要有好的游戏思想之外,还必须有精美的素材。这些素材包括图像、声音和影象等。素材的加入可以使游戏更加具有趣味性。而事实上,这些素材的准备和搭配就往往要占去游戏开发的很大一部分时间。下面是本例素材的基本实现方法和步骤:
1、用专业的资源制作工具,如图像制作工具,声音制作工具来编辑制作资源文件,将这些文件保存到同一目录下。
2、用记事本新建一个RC文件(在保存时选择文件类型为“所有类型”,文件名中键入*.rc)。比如本例的这个资源文件的rc文件内容见图5-2。注意RC文件的格式:名称 类型 实际文件名称graphics.rc文件
的是要确保实际名称是有效存在的。而且.资源类型除WAVE、AVI?、ICON等外,还可以字体文件字符串文件等。将rc文件编译成res资源文件?将文件和实际文件拷到目录Brcc32.exe下(目录为X:\Borland\Delphi7\Bin),执行:Brcc32?命令Brcc32?graphics.rc (回车)。如果编译成功,则会生成一个结尾为res的文件,这个文件就是我们需要的资源文件graphics.res。graphics.rc就可以查看这个文件的内容,如图5-3所示。
图5-3 graphics.res内容
4、将生成的graphics.r资源文件拷贝到你所编程序的路径下在单元文件{$R?*DFM}后{$R?*.RES}后加上一句{$Rgraphics.r},则将res文件加入去编译后资源文件即已包含在可执行文件中了。若有多个资源文件,也按上法依次加入。PopupMenu,然后对这些控件进行布局,2个Timer的Name分别是ScoreTimer和RatTimer,Enabled分别为False和True,Interval分别为1000和40,如图4-2所示。这个窗口是作为主窗口的(图5-1的下半部分)。
图5-3 主窗口的控件和窗口布局
3.控制窗口设计。选择File|New||Form,然后向Form上添加7个Image和1个ImageList,如图5-4所示。双击ImageList1,然后按Add载入10个数字位图,如图5-5所示。
图5-4 控制窗口
图5-5 ImageList1的内容
4.编写代码。
打地鼠游戏分为两个部分来说明。本部分的代码大都是面向界面的,而且由于篇幅有限,只介绍主要的代码。完整代码可以参考光盘内容。
(1)在程序运行后,要进行一些必要的设置:初始数据的设置,素材的载入和具体的位置,计时设置,等。这些都是通过下列代码来实现。在这段代码中,有不少自定义的函数,这在代码中说明。
procedure TMainForm.FormCreate(Sender: TObject);
var
myRgn : HRGN;
round : integer;
btnOrder : MenuButtonOrder;
begin
{程序运行的初始设置}
GameRunning := FALSE;
GamePause := FALSE;
InitData; //初始数字的设置
HandStatus := Hand_Up; //锤子松开
{设置素材的位置和显示}
BackGroundBitmap := TBitmap.Create;
BackGroundBitmap.LoadFromResourceName(hInstance, BACKGROUND);
BufferBitmap := TBitmap.Create;
BufferBitmap.Width := BackGroundBitmap.Width;
BufferBitmap.Height := BackGroundBitmap.Height;
MainForm.ClientWidth := BackGroundBitmap.Width;
MainForm.ClientHeight := BackGroundBitmap.Height;
OKUPButtonBitmap:= TBitmap.Create;
OKUPButtonBitmap.LoadFromResource
文档评论(0)