基于GTK的图形游戏开发Word下载.docx
- 文档编号:22352777
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:42
- 大小:659.91KB
基于GTK的图形游戏开发Word下载.docx
《基于GTK的图形游戏开发Word下载.docx》由会员分享,可在线阅读,更多相关《基于GTK的图形游戏开发Word下载.docx(42页珍藏版)》请在冰豆网上搜索。
GTK
Abstract:
Withthecurrenteconomicandcomputerstherapiddevelopmentofmultimediatechnology,computergameshavebecomeanincreasingpeople'
spro-Lai,becomeimportantinthelifeofthecomponent.Atpresentthecomplicatedcomputergames,frommoredevelopedfromstand-alonegame,learningsimplestand-aloneversionofthegameproduction,computergamesbeneficialtodeepentheirunderstandingoftheconceptoftheproductionofunderstanding,willalsobebeneficialtothefuturetoparticipateinmorecomplexprojects.
Inthispaper,howtousetheGTKLinux-basedplatformforthepreparationofthegamegraphics-diggingmines.GamesoftwareengineeringmethodsusedtoGTKasasystemapplicationdevelopmenttoolstoMFCinthedialogasthebasisofprocedures,theuseoftextfilesstoreddataandusetheClanguageinthetextofthestatementtothetextdocumentsrelatedoperations.Gamesusingmoredialogstructure,includingthegameinterfacedialog,logdialog,top-updialog,andsuggestedthatthedialog.
Keywords:
Linux;
diggingmines;
目录
第一章前言4
第二章Linux平台与游戏开发8
2.1Linux的优缺点10
2.2游戏厂家看好Linux11
2.3Linux是游戏发展的一次机遇13
第三章相关介绍和准备工作16
3.1 开发环境及运行环境16
3.1.1 开发环境16
3.1.2 运行环境16
3.2计算机图形学方面的知识16
3.2.1基本的C作图方法及主循环控制模块16
3.2.2图形模式下的文本输出17
第四章Linux环境下的程序开发18
3.1Linux下C语言程序开发23
3.2Linux下GUI应用程序的开发23
3.3 用MySQL和GTK+开发数据库及其关键技术25
3.3.1 开发的可行性25
3.3.2GTK+和MySQL开发过程中的问题26
3.4小结27
第四章C语言扫雷游戏的实现28
4.1程序的设计和分析28
4.2程序的流程图29
4.3功能简介29
4.4游戏运行截图31
4.4本章小结31
总结32
参考文献34
致谢35
附录36
第一章前言
在众多的游戏开发工具中,GNU(图像处理程序)是基于Linux平台,能与Photoshop相媲美的图像处理软件;
这差不多已经10年过去了。
今天,在GTK+的最新版本——2.8版上,仍然在进行许多活动,同时,GIMP无疑仍然是使用GTK+的最著名的程序之一,不过现在它已经不是惟一的使用GTK+的程序了。
已经为GTK+编写了成百上千的应用程序,而且至少有两个主要的桌面环境(Xfce和GNOME)用GTK+为用户提供完整的工作环境。
为什么使用GUI工具包?
使用GTK+这样的库比起编写自己的GUI代码来有多个优势。
例如,它可以显著节约开发时间,让开发人员把精力集中在项目真正重要和真正独特的地方,而不必重复公共的功能。
对于用户来说,这意味着他们使用的应用程序之间具有更好的一致性:
工具包能在哪使用,应用程序就能跟到哪里。
就像使用LEGO一样,所有的人都使用同一兼容尺寸这一事实,意味着设计可以在使用库的人之间共享,不论他们在哪里使用它。
在现实中,现代的GUI工具包做的工作不仅仅是避免重复。
它们提供了许多高级功能,用户希望在他们的应用程序中拥有这些功能,但是用别的方法得不到这些功能,因为在这类工具包上所投入的时间和工作,要远远超过在单一应用程序上的花费。
所以,如果在应用程序中使用GUI对您来说很重要,那么请使用工具包。
除此之外别无他法。
现在剩下的惟一问题就是,应当使用哪个工具包?
GTK+的优势
不论开发的需要是什么,GTK+可能就是您正在寻找的答案。
GTK+提供了许多东西:
它既现代,而且得到了积极的开发与维护,围绕它有一个充满活力的社区。
它提供了广泛的选项,用于把工作扩展到尽可能多的人,其中包括一个针对国际化、本地化和可访问性的完善的框架。
它简单易用,对开发人员和用户来说都是这样。
它的设计良好、灵活而可扩展。
它是自由软件,有一个自由的开放源码许可。
它是可移植的,从用户和开发人员的角度都是这样。
现代的且开发积极的工具包
GTK+是采用软件开发中的最新技术开发的,只要发现缺陷(肯定有缺陷,因为没有任何软件是完美的),开发人员就会尽力在下一版本中修补缺陷。
使用现代的软件意味着,您不会陷在过时的工作中,而跟不上时代的发展。
持续的维护和开发也意味着您拥有影响工具包的未来发展方向的能力。
另外,在出现新的发行版时,会引入基于用户反馈的新特性和新功能,而旧的问题则得到修补。
国际化、本地化和可访问性
在创建要让所有人使用的软件的时候,请记住三个关键字:
国际化、本地化和可访问性(通常分别缩写为i18n、l10n和a11y)。
国际化是将程序准备为被母语不是开发应用程序所采用的语言的人使用的过程,所以应用程序不依赖于对任何特定语言的任何假设。
i18n远远不只是对程序使用的文本进行翻译。
它还意味着要考虑所使用的不同脚本和字母表、不同的编写方向、显示许多语言所需要的特殊处理以及为用户提供输入文本的适当方法。
不是每种语言都可以简单地把每个字母映射到键盘上的不同键,而且还必须实现更好的复杂性,例如确保在错误消息中使用正确的复数。
本地化与i18n密切相关,因为为国际用户准备应用程序不仅仅是改变语言。
程序还必须能够理解并尊重日期、货币显示、数字标注、文本排序所使用的不同习惯,以及许多可能不太注意的细节之处——例如有些符号的使用,在世界的不同地方可能会被认为是不恰当的或无礼的。
正像i18n,正确的l10n要求在代码中添加很多东西,而这些是事后很难轻松加入的。
GTK+提供了针对i18n和l10n的恰当工具,会让代码(和二进制)可以在许多语言和地域上不加修改地运行。
切换地域所需要的就是随操作系统(针对l10n)或者一个可独立于实际的程序进行处理和发布的翻译文件(针对i18n)一起发布的一组数据。
带来的灵活性会得到开发人员、翻译者和用户的热爱。
可访问性是让每个人都可以使用您的程序。
有些用户的视力不佳,有些人可能不能用键盘或鼠标,而有些人可能只能移动他们的眼睛。
要确保每个想使用您的应用程序的用户都能使用,需要做许多工作。
幸运的是,GTK+提供了一个途径,可以通过一个完善的预先存在的a11y框架,立即得到这方面的支持,而您这边几乎什么工作也不需要做。
使用这个框架(它是UNIX&
reg;
系统上的事实标准),可以把应用程序带给各类用户。
您也能享受a11y的许多优势——例如执行自动GUI测试的能力。
通过让特殊需求用户运行的可访问性软件可以使用您的应用程序,您也可以让测试软件可以访问它,例如,检查行为是否正确——这在传统的GUI编程中会带来严重的问题。
(还值得记住的是:
现在,a11y不再被当作“好”东西。
许多法规——例如有关美国政府用软件的规则——实际上要求软件对特殊需求的用户有恰当的支持。
以上三点可能是使用工具包的充足理由——特别是GTK+,它在这三个领域都有优秀的支持。
这个支持绝不完美,但在同类软件中是最好的,而且把这些关键字整合进应用程序的重要性并没有提到应有高度。
在今天的世界中,计算机无处不在,用户众多而且独特,所以不能认为一个遗漏一整群用户的应用程序是一个完整的产品。
简单易用
这一点应当很明显,但是它实际上含义丰富。
工具包对用户应当容易,这样才有可能创建简单的、直觉的和乐于使用的界面,哪怕针对的是新手。
创建人机交互的正确模型不是一项简单的任务,GTK+正是长时间工作的结果,而且是众多的甚至困难的决策的结果。
GTK+对于开发人员也易于使用。
它允许开发人员用简单的方式说出自己想要的东西,不会用所谓正规方式给开发人员带来负担,这些正规方式是计算机为了弥补它们固有的缺乏想像力的缺陷而施加给人类的负担。
设计良好、灵活和可扩展
编写GTK+的方式允许在不扭曲基本设计的情况下,让维护人员添加新功能、让用户利用新功能。
工具包也是可扩展的,这意味着可以向其中添加自己的块,并用使用内置块一样的方式使用它们。
例如,可以编写自己的控制元素,比如说用于显示应用程序处理的科学数据,并让它正确地遵照用户选择的显示风格,就像GTK+自身的控件那样。
更进一步,GTK+是可定制的,这样就可以让它适应自己的需求。
GTK+有一个系统,可以在所有应用程序之间复制设置,包括主题的选择。
主题是一组一同发布的定制设置,会影响GTK+使用的基本控件看起来的效果,甚至某种程度上的行为方式。
使用主题,可以(例如)模拟另一个操作系统的观感。
带有自由开放源码许可的自由软件
自由软件意味着每个人不仅可以自由地获得和使用这个工具包,还可以在满足某些条件的情况下修改并重新发布它。
自由开放源码许可意味着这些条件不是严格限制的,可以得到的自由程度是显著的。
最重要的是,GTK+采用了LesserGeneralPublicLicense(LGPL)许可,这是GNU许可家族中一个不太严格的许可。
LGPL允许自由地获取、修改和发布它覆盖的任何软件,只要对修改也保持自由即可。
LGPL还允许任何人使用该库提供的功能,而不要求用户公开应用程序代码。
(这对于许多工业应用来说很重要,因为由于以前的协议或许可,这种场合下一般不希望公开代码或者公开代码是显然不现实的。
)使用LGPL许可,您既可以是开放源码社区的好伙伴也可以是好公民。
可移植
最后(但并不是最不重要),GTK+是可移植的。
这意味着用户可以在许多平台和系统上运行它。
另一方面,开发人员可以把软件提供给众多用户,却只要编写一次程序,还可以使用许多不同的编程和开发平台、工具和编程语言。
所有这些都可以理解为更多的潜在用户,您可以利用更好地满足需求的更广泛的技能和工具。
所有这些优势组合在一起,让GTK+成为软件开发的坚实基础。
有了它,就能够把注意力集中在解决实际问题上,而不必重新发明轮子,而且您也可以确信创建的应用程序会按照用户预期的方式运作、解决他们的问题,而不必创建新的应用程序。
通过制作这样一个软件,可以加深对游戏设计思想的了解,也可以进一步熟悉编程工具的应用,更可以给我们的生活带来更多的趣味。
在此次设计过程中,通过GTK开发一个基于对话框的程序,不同对话框实现不同功能,通过点击鼠标左右键实现对游戏的操作,选择开始游戏,选择不同难度改变图形进行不同难度的游戏,以及退出游戏等功能。
通过该设计,我更好的了解了Linux的消息机制,更深的体会到利用GTK开发Linux程序的优越性。
第二章Linux平台与游戏开发
虽然没有搞“午夜疯狂”加之类的商业性炒作,但是顺应互联网时代潮流的自由软件〔又叫作“源代码开放软件”巧正在赢得日益众多的支持、认可和信赖,迎来了扬眉吐气的日子。
目前,在世界范围内流行的软件基本上有三大类,即商业性软件(Commercialsoftware)共享软件(Shareware)和自由软件(Freesoftware或者Freeware)。
商业性软件由开发厂家出售软件复制版本和提供技术服务,用户只有使用权,不得对软件进行复制、一扩散或修改;
共享软件开发者向用户提供有试用期限制的软件版本,试用期满后,用户向开发者交纳费用注册后即可取得正式使用权并得到开发者提供的升级和技术服务;
自由软件则由开发者公布软件并开放源代码,一任何人都可以免费使用、复制、扩散和进行修改,但必须公开其修改后的源代码。
1991年由芬兰赫尔辛基大学学生林纳斯.托瓦尔茨了(LinusTorvalds)率先开发的Unix型自由操作系统Linux,在全世界众多爱好者和软件厂家的悉心呵护和精心培育下,一己经打入互联网和企业网及校园网的各种服务器、卫星网络路由器、电子数据交换(EDI)系统、中间件、机顶盒等许多领域,同商业性操作系统展开而对而的竞争,且走进了一般消费者的视野,成为个人机用户心目中摒弃无奈的商业性操作系统的希望。
商业性操作系统价格昂贵,稳定性不佳,时而出错,时而怠工,甚至罢工或者崩溃。
Linux却截然不同,Linux操作系统以及与其有关的大量软件是在自由软件基金会GNU通用公共许可证协议(GeneralPublicLicenseAgrement)的推动下开发和发布的。
从操作系统角度来看,其最为突出的特点是源代码开放,任何人都可以免费使用并根据自己需要任意加以修改。
这一特点带来两个好处:
其一,众多的独立编程人员通过试用反复对其进行推敲和验证,及时清除其中的错(bug)集思广益地不断使系统更加完善,其二,用户为了满足自己对各种最新技术和硬件平台的需求而不断修改源代码,使得系统目前能够支持采用386系列及其上版本处理器的个人机、苹果公司Macintosh机、SUN微系统公司SPARC工作站系统以及Alpha和PowerPC处理器等几乎所有的硬件平台,并且可以支持ARM等用于嵌入式系统的各种处理器。
一位业内资深评论家认为,这种大量扩散、分布式开发并且得到编程人员和业界人士广泛支持的自由软件模式,是整个软件行业的希望。
近几年来T-Linux的用户日益增加,许多厂家将Linux操作系统和附加软件制成发行版本软件包廉价出售,使用户可以简便地加以利用。
目前,在国外,红帽软件〔RedHatSoftware〕公司的发行版本占有较大的优势,此外,Bebian、Caldera、SuSELinux及SlackWare等众多厂家也都提供可以大幅度地简化Linux安装作业的发行版本:
在国内,中文Linux发行版本也已经有冲浪平台软件公司的XteamLinux中文版、拓林思软件公司的TurboLinux4.0简体中文版、由中科院软件所等单位合作推出的全中文“红旗Linux”等。
近两年来,Linux获得了许多国际知名的计算机硬件和软件公司一〔如英特尔、网景、IBM、Infomix、Ingres、NovellOracle等〕的支持,一些著名软件公司已经推出运行于Linux环境中的许多产品〔如字处理、电子表格、图形应用程序浏览器和阅读器及信息浏览服务器等〕,“某厂家的获奖产品己经移植到Linux平台”之类的报道也不时见诸报刊,SUN微系统等公司还建立了一个Linux国际化组织,目的是将Linux平台上的应用软件国际化,加盟这一组织的有红帽软件、富士通、日本电气、日本电报电话、Cadera、CSK、IBM、JLA、LBI、SuSELinux、TLUG、TurboLinux等公司。
国际数据公司(IDC)的一项调查报告表明,在1998年,通过对Linux操作系统提供商业性技术支持而获得的收益大约在2一4亿美元之间。
虽然数额不大,但对于一种原本是免费发布的软件来说,己经称得上是“蔚为奇观”。
国际数据公司的预测认为,在今后几年里Linux的交货量将以25%的速率增长,而其他操作系统的增长速率为10%左右,因此,在2003年以前,Linux将会成为占第二位的主流操作系统。
业界人士普遍认为,在今后3—5年内,Linux有希望进入主流操作系统的行列,可以断定在进入主流行列之前,还要经历一段相当艰难的路程。
2.1Linux的优缺点
从用户角度来说,Linux操作系统最突出的优点是“免费”。
当然,由软件公司推出的发行版本是要收费的,不过,其中除了操作系统之外还包括有许多应用软件,而且,售价可能低于直接从互联网上下载的费用,安装也比较方便。
此外,Linux的稳定性、可靠性和系统运行速度都相当优异,这吸引了越来越多的互联网站点在Linux平台上建立其WWW〔信息浏览称〕FTP〔文件传输协议〕及电子邮件的服务器。
一家市场调查公司的统计表明,1998年美国互联网商业性信息浏览服务器中,采用Apache公司自由软件信息浏览服务器的有65.5万台,采用微软件公司互联网服务器的有29.2万台,采用网景公司企业服务器的有7万台,自由软件占绝对优势。
有报道说,在制作电影《泰坦尼克号》所使用的160台Alpha图形工作站中,有105台运行的是Linux系统,康柏、日本电气等国际知名的公司已经应用户要求在其服务器、工作站、台式与笔记本型个人机产品预装Linux操作系统,国内的浪潮集团和长城集团等也已经分别在其服务器和个人机产品中预装Linux系统。
此外,几乎所有的主要数据库厂商都发布了而向Linux的数据库系统。
一些专业人士认为,在硬件平台和配置相同的条件下,Linux的性能远优于商业性操作系统;
有的已安装Linux的用户认为,Linux是一个大有前途的操作系统,虽然字符的界而不很好用,提示信息也不亲切,但比商业性操作系统强大可靠得多,而且对硬件配置的要求低得多。
这些年来,在全世界数以万计的独立编程人员的共同努力下,不仅Linux操作系统本身获得了重大的进展,而且开发出许多软件〔有些是移植的〕,从开发
工具〔还有标准库、编译程序和调试程序及程序设计语言等〕、称压缩工具、文件管理器、窗口管理器、看图工具、办公系统套件(含有字处理、电子表格及幻灯片制作等)CD和MP3播放器一直到难以胜计的精彩游戏软件,应有尽有,几乎可以执行在商业性操作系统上完成的一切任务。
对于普通的个人用户来说,目前,Linux的缺点是不易安装。
XWindow系统(可移植的图形用户界)和外围设备的配置比较麻烦,操作时需要记忆繁琐的命令,使用不便,而且,应用软件也存在易用性的问题,需要用户掌握相当的知识和技巧之后,才能熟练使用。
2.2游戏厂家看好Linux
Linux在游戏迷中的人气日益旺盛,这就给Linux的发展带来更加强大的推动力。
正在开发Linux版本商业性游戏软件包的众多厂家之一—Loki娱乐软件公司总经理斯科特.多莱卡表示:
“对于Linux来说,游戏软件是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 GTK 图形 游戏 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)