毕业设计(论文)-基于GTK的Linux图形游戏开发―挖地雷.doc_第1页
毕业设计(论文)-基于GTK的Linux图形游戏开发―挖地雷.doc_第2页
毕业设计(论文)-基于GTK的Linux图形游戏开发―挖地雷.doc_第3页
毕业设计(论文)-基于GTK的Linux图形游戏开发―挖地雷.doc_第4页
毕业设计(论文)-基于GTK的Linux图形游戏开发―挖地雷.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

基于GTK的Linux图形游戏开发挖地雷摘要: 随着经济及计算机多媒体技术的飞速发展,计算机游戏日益受到人们的亲睐,成为人们生活中重要的休闲娱乐方式。目前纷繁复杂的游戏软件,多由单机版游戏发展而来,学习简单的单机版游戏制作,有益于加深对游戏软件制作理念的理解,也将有益于今后参加更加复杂的项目。目前不论是在我国,还是在世界范围内,游戏产业都在蓬勃发展,越来越多更具娱乐性的游戏被开发出来,这其中游戏开发工具的发展进步功不可没。在众多的游戏开发工具中,GNU(图像处理程序)是基于Linux平台,能与Photoshop相媲美的图像处理软件;GTK(GIMP TooL Kit,GIMP工具包)最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一,备受开源软件开发者的瞩目,2002年3月11日,GTK+2.0版正式发布,开发者们自豪的宣称” GTK+2.0标志着自由软件领域的图形界面开发工具走向成熟.GTK+2.0是自由软件,并且是GNU工程的一部分,GTK+2.0的许可协议LGPL,允许任何开发者使用(包括那些开发中的专利软件)且不收任何费用.GTK+2.0是当今唯一百分之百零付费的工业级的图形界面开发工具. 最初,GTK+ 是作为另一个著名的开放源码项目 GNU Image Manipulation Program (GIMP) 的副产品而创建的。在开发早期的 GIMP 版本时,Peter Mattis 和 Spencer Kimball 创建了 GTK(它代表 GIMP Toolkit),作为 Motif 工具包的替代,后者在那个时候不是免费的。(当这个工具包获得了面向对象特性和可扩展性之后,才在名称后面加上了一个加号。) 下面主要介绍怎样使用GTK编写基于Linux平台的图形游戏挖地雷。游戏采用软件工程的方法,以GTK作为Linux操作系统应用程序开发工具,以MFC中对话框为程序基础,使用文本文件贮存相关数据,并使用C语言中的文本操作语句对文本文件进行相关操作。游戏程序采用多对话框结构,其中包括游戏界面对话框,登录对话框,充值对话框,以及提示对话框。关键词: Linux; 挖地雷;GTKAbstract: With the current economic and computers the rapid development of multimedia technology, computer games have become an increasing peoples pro-Lai, become important in the life of the component. At present the complicated computer games, from more developed from stand-alone game, learning simple stand-alone version of the game production, computer games beneficial to deepen their understanding of the concept of the production of understanding, will also be beneficial to the future to participate in more complex projects. In this paper, how to use the GTK Linux-based platform for the preparation of the game graphics - digging mines. Game software engineering methods used to GTKas a system application development tools to MFC in the dialog as the basis of procedures, the use of text files stored data and use the C language in the text of the statement to the text documents related operations. Games using more dialog structure, including the game interface dialog, log dialog, top-up dialog, and suggested that the dialog. Key words:Linux; digging mines;GTK目 录第一章 前 言4第二章Linux平台与游戏开发82.1 Linux的优缺点102.2 游戏厂家看好Linux112.3 Linux是游戏发展的一次机遇13第三章 相关介绍和准备工作163.1开发环境及运行环境163.1.1开发环境163.1.2运行环境163.2计算机图形学方面的知识163.2.1基本的C作图方法及主循环控制模块163.2.2图形模式下的文本输出17第四章 Linux环境下的程序开发183.1 Linux下C语言程序开发233.2 Linux下GUI应用程序的开发233.3用My SQL和GTK+开发数据库及其关键技术253.3.1开发的可行性253.3.2 GTK+和My SQL开发过程中的问题263.4 小结27第四章C语言扫雷游戏的实现284.1程序的设计和分析284.2程序的流程图294.3功能简介294.4 游戏运行截图314.4 本章小结31总 结32参考文献34致 谢35附录36第一章 前 言随着经济及计算机多媒体技术的飞速发展,计算机游戏日益受到人们的亲睐,成为人们生活中重要的休闲娱乐方式。目前纷繁复杂的游戏软件,多由单机版游戏发展而来,学习简单的单机版游戏制作,有益于加深对游戏软件制作理念的理解,也将有益于今后参加更加复杂的项目。目前不论是在我国,还是在世界范围内,游戏产业都在蓬勃发展,越来越多更具娱乐性的游戏被开发出来,这其中游戏开发工具的发展进步功不可没。在众多的游戏开发工具中,GNU(图像处理程序)是基于L inux平台,能与Photoshop相媲美的图像处理软件;GTK(GIMP TooL Kit,GIMP工具包)最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一,备受开源软件开发者的瞩目,2002年3月11日,GTK+2.0版正式发布,开发者们自豪的宣称” GTK+2.0标志着自由软件领域的图形界面开发工具走向成熟.GTK+2.0是自由软件,并且是GNU工程的一部分,GTK+2.0的许可协议LGPL,允许任何开发者使用(包括那些开发中的专利软件)且不收任何费用.GTK+2.0是当今唯一百分之百零付费的工业级的图形界面开发工具. 最初,GTK+ 是作为另一个著名的开放源码项目 GNU Image Manipulation Program (GIMP) 的副产品而创建的。在开发早期的 GIMP 版本时,Peter Mattis 和 Spencer Kimball 创建了 GTK(它代表 GIMP Toolkit),作为 Motif 工具包的替代,后者在那个时候不是免费的。(当这个工具包获得了面向对象特性和可扩展性之后,才在名称后面加上了一个加号。) 这差不多已经 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® 系统上的事实标准),可以把应用程序带给各类用户。 您也能享受 a11y 的许多优势 例如执行自动 GUI 测试的能力。通过让特殊需求用户运行的可访问性软件可以使用您的应用程序,您也可以让测试软件可以访问它,例如,检查行为是否正确 这在传统的 GUI 编程中会带来严重的问题。(还值得记住的是:现在,a11y 不再被当作 “好” 东西。许多法规 例如有关美国政府用软件的规则 实际上要求软件对特殊需求的用户有恰当的支持。) 以上三点可能是使用工具包的充足理由 特别是 GTK+,它在这三个领域都有优秀的支持。这个支持绝不完美,但在同类软件中是最好的,而且把这些关键字整合进应用程序的重要性并没有提到应有高度。在今天的世界中,计算机无处不在,用户众多而且独特,所以不能认为一个遗漏一整群用户的应用程序是一个完整的产品。简单易用 这一点应当很明显,但是它实际上含义丰富。工具包对用户应当容易,这样才有可能创建简单的、直觉的和乐于使用的界面,哪怕针对的是新手。创建人机交互的正确模型不是一项简单的任务,GTK+ 正是长时间工作的结果,而且是众多的甚至困难的决策的结果。 GTK+ 对于开发人员也易于使用。它允许开发人员用简单的方式说出自己想要的东西,不会用所谓正规方式给开发人员带来负担,这些正规方式是计算机为了弥补它们固有的缺乏想像力的缺陷而施加给人类的负担。设计良好、灵活和可扩展 编写 GTK+ 的方式允许在不扭曲基本设计的情况下,让维护人员添加新功能、让用户利用新功能。工具包也是可扩展的,这意味着可以向其中添加自己的块,并用使用内置块一样的方式使用它们。例如,可以编写自己的控制元素,比如说用于显示应用程序处理的科学数据,并让它正确地遵照用户选择的显示风格,就像 GTK+ 自身的控件那样。 更进一步,GTK+ 是可定制的,这样就可以让它适应自己的需求。GTK+ 有一个系统,可以在所有应用程序之间复制设置,包括主题的选择。主题 是一组一同发布的定制设置,会影响 GTK+ 使用的基本控件看起来的效果,甚至某种程度上的行为方式。使用主题,可以(例如)模拟另一个操作系统的观感。带有自由开放源码许可的自由软件 自由软件 意味着每个人不仅可以自由地获得和使用这个工具包,还可以在满足某些条件的情况下修改并重新发布它。自由开放源码许可 意味着这些条件不是严格限制的,可以得到的自由程度是显著的。最重要的是,GTK+ 采用了 Lesser General Public License (LGPL) 许可,这是 GNU 许可家族中一个不太严格的许可。LGPL 允许自由地获取、修改和发布它覆盖的任何软件,只要对修改也保持自由即可。LGPL 还允许任何人使用该库提供的功能,而不 要求用户公开应用程序代码。(这对于许多工业应用来说很重要,因为由于以前的协议或许可,这种场合下一般不希望公开代码或者公开代码是显然不现实的。)使用 LGPL 许可,您既可以是开放源码社区的好伙伴也可以是好公民。可移植 最后(但并不是最不重要),GTK+ 是可移植的。这意味着用户可以在许多平台和系统上运行它。另一方面,开发人员可以把软件提供给众多用户,却只要编写一次程序,还可以使用许多不同的编程和开发平台、工具和编程语言。所有这些都可以理解为更多的潜在用户,您可以利用更好地满足需求的更广泛的技能和工具。 所有这些优势组合在一起,让 GTK+ 成为软件开发的坚实基础。有了它,就能够把注意力集中在解决实际问题上,而不必重新发明轮子,而且您也可以确信创建的应用程序会按照用户预期的方式运作、解决他们的问题,而不必创建新的应用程序。通过制作这样一个软件,可以加深对游戏设计思想的了解,也可以进一步熟悉编程工具的应用,更可以给我们的生活带来更多的趣味。在此次设计过程中,通过GTK开发一个基于对话框的程序,不同对话框实现不同功能,通过点击鼠标左右键实现对游戏的操作,选择开始游戏,选择不同难度改变图形进行不同难度的游戏,以及退出游戏等功能。通过该设计,我更好的了解了Linux的消息机制,更深的体会到利用GTK开发Linux程序的优越性。第二章Linux平台与游戏开发虽然没有搞“午夜疯狂”加之类的商业性炒作,但是顺应互联网时代潮流的自由软件又叫作“源代码开放软件”巧正在赢得日益众多的支持、认可和信赖,迎来了扬眉吐气的日子。 目前,在世界范围内流行的软件基本上有三大类,即商业性软件(Commercial software)共享软件(Shareware)和自由软件(Free software或者Freeware)。商业性软件由开发厂家出售软件复制版本和提供技术服务,用户只有使用权,不得对软件进行复制、一扩散或修改;共享软件开发者向用户提供有试用期限制的软件版本,试用期满后,用户向开发者交纳费用注册后即可取得正式使用权并得到开发者提供的升级和技术服务;自由软件则由开发者公布软件并开放源代码,一任何人都可以免费使用、复制、扩散和进行修改,但必须公开其修改后的源代码。 1991年由芬兰赫尔辛基大学学生林纳斯.托瓦尔茨了(Linus Torvalds)率先开发的Unix型自由操作系统Linux,在全世界众多爱好者和软件厂家的悉心呵护和精心培育下,一己经打入互联网和企业网及校园网的各种服务器、卫星网络路由器、电子数据交换(EDI)系统、中间件、机顶盒等许多领域,同商业性操作系统展开而对而的竞争,且走进了一般消费者的视野,成为个人机用户心目中摒弃无奈的商业性操作系统的希望。商业性操作系统价格昂贵,稳定性不佳,时而出错,时而怠工,甚至罢工或者崩溃。Linux却截然不同,Linux操作系统以及与其有关的大量软件是在自由软件基金会GNU通用公共许可证协议(General Public License Agrement)的推动下开发和发布的。从操作系统角度来看,其最为突出的特点是源代码开放,任何人都可以免费使用并根据自己需要任意加以修改。这一特点带来两个好处:其一,众多的独立编程人员通过试用反复对其进行推敲和验证,及时清除其中的错(bug)集思广益地不断使系统更加完善,其二,用户为了满足自己对各种最新技术和硬件平台的需求而不断修改源代码,使得系统目前能够支持采用386系列及其上版本处理器的个人机、苹果公司Macintosh机、SUN微系统公司SPARC工作站系统以及Alpha和Power PC处理器等几乎所有的硬件平台,并且可以支持ARM等用于嵌入式系统的各种处理器。一位业内资深评论家认为,这种大量扩散、分布式开发并且得到编程人员和业界人士广泛支持的自由软件模式, 是整个软件行业的希望。 近几年来T-Linux的用户日益增加,许多厂家将Linux操作系统和附加软件制成发行版本软件包廉价出售,使用户可以简便地加以利用。目前,在国外,红帽软件Red Hat Software公司的发行版本占有较大的优势,此外,Bebian、Caldera、SuSE Linux及Slack Ware等众多厂家也都提供可以大幅度地简化Linux安装作业的发行版本:在国内,中文Linux发行版本也已经有冲浪平台软件公司的Xteam Linux中文版、拓林思软件公司的Turbo Linux4.0简体中文版、由中科院软件所等单位合作推出的全中文“红旗Linux”等。 近两年来,Linux获得了许多国际知名的计算机硬件和软件公司一如英特尔、网景、IBM、Infomix、Ingres、Novell Oracle等的支持,一些著名软件公司已经推出运行于Linux环境中的许多产品如字处理、电子表格、图形应用程序浏览器和阅读器及信息浏览服务器等,“某厂家的获奖产品己经移植到Linux平台”之类的报道也不时见诸报刊,SUN微系统等公司还建立了一个Linux国际化组织,目的是将Linux平台上的应用软件国际化,加盟这一组织的有红帽软件、富士通、日本电气、日本电报电话、Cadera、CSK、IBM、JLA、LBI、SuSE Linux、TLUG、Turbo Linux等公司。 国际数据公司(IDC)的一项调查报告表明,在1998年,通过对Linux操作系统提供商业性技术支持而获得的收益大约在2一4亿美元之间。虽然数额不大,但对于一种原本是免费发布的软件来说,己经称得上是“蔚为奇观”。国际数据公司的预测认为,在今后几年里Linux的交货量将以25%的速率增长,而其他操作系统的增长速率为10%左右,因此,在2003年以前,Linux将会成为占第二位的主流操作系统。业界人士普遍认为,在今后35年内,Linux有希望进入主流操作系统的行列,可以断定在进入主流行列之前,还要经历一段相当艰难的路程。2.1 Linux的优缺点 从用户角度来说,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的缺点是不易安装。X Window系统(可移植的图形用户界)和外围设备的配置比较麻烦,操作时需要记忆繁琐的命令,使用不便,而且,应用软件也存在易用性的问题,需要用户掌握相当的知识和技巧之后,才能熟练使用。2.2 游戏厂家看好Linux Linux在游戏迷中的人气日益旺盛,这就给Linux的发展带来更加强大的推动力。正在开发Linux版本商业性游戏软件包的众多厂家之一Loki娱乐软件公司总经理斯科特.多莱卡表示:“对于Linux来说,游戏软件是很重要的市场。如果向那些备有高级个人机硬件,并每月购买一、两款游戏软件的玩家们演示在Linux环境中玩游戏的情景,让他们了解Linux的优点,那么,他们一定会马上采用Linux。 现在,已经有不少的商业性游戏软件也供应而向Linux的版本。例如,神话II:铁血丹心,铁路大亨,文明:天赋神权,异教徒,Decent,SimCityClassic,终极在线,(Ultima Online)3D射击游戏Doom,Quake系列、暗杀希特勒,Wofenstein 3D等,并且,厂商们计划今后供应更多的Linux版游戏软件。此外,以自由软件或者共享软件形式发布的可以在Linux环境中运行的游戏软件,其数量之多,更是不胜枚举。 起初,Linux主要是在一些软件高手中间流行,后来很快吸引了一大批专业和业余的编程高手,形成了一个人数众多而又非常热情主动的支持群体,能够通过互联网迅速地对用户提出的问题作出回应。 游戏厂家和Linux支持群体的关系正在逐步加强。一些游戏开发人员对于Linux支持群体的印象是这样的:Linux支持群体拥有相当丰富的技术知识,从Linux支持群体反馈回来的对游戏的意见和建议非常之多,他们之中有许多人喜欢在个人机的Linux环境中玩游戏。- id软件公司设计师兼产品经理格雷.戴本称赞Linux支持群体的技术知识丰富,能够提出有水平的意见,使得该公司得以及早发布而向Linux的QuakeIII测试版。他认为Linux要成为占有优势的游戏平台,前而还有一条不平坦的道路。因为进行游戏设置时,在Linux环境中往往比在Windows环境中要困难得多。然而,设置困难仅仅是培育Linux成为标准游戏平台进程中的许多障碍之一。戴本指出:“大部分障碍属于硬件支持问题和驱动程序问题。”不过,在采用最新Linux内核2. 2. 0版的Linux发行版本问世后,这种情况会有所改善。因为在Linux内核2.2.0版中,所支持的音响和视频设备品种更多,游戏手柄了包括许多新的类型了也得到了更好的支持。 Loki娱乐软件公司为什么要采用Linux作为开发平台和游戏平台呢?多莱卡解释说:“Linux本身的开发是以技术为主导进行的,是软件代码和有意义的技术内容在主导着Linux的开发,没有受到特定软件厂家的营销战略的影响;一同其他商业性操作系统相比,Linux的速度快,系统稳定,响应性能优异。” 但是,从最终用户的角度来说,目前还难以作出最后结论。那些个人机硬件完善的游戏玩家们绝对不会愿意因为所采用的操作系统欠佳而使自己玩的游戏种类受到限制,尽管Linux比与其竞争的操作系统速度快并且稳定。戴本说:“Linux的缺点是不能用来处理所有的任务,如果我们只发行而向Linux和Macintosh机的Quake III测试版的话,那么,无可奈何的游戏玩家们只好在玩游戏时从Windows98切换到红帽软件公司Linux6. 0版的操作界。”但在实际中,人们肯定会非常讨厌这种毫无意义的反复切换。 其实,Linux的开发工作是有组织地进行的,因此,而向Linux的游戏开发作业确实有其方便的。多莱卡解释说:“Linux支持群体是生气蓬勃和积极进取的。例如,当我们询问有关编译程序的问题时,在电子邮件发出后不到一小时,就收到答复说正在制订新的标准,但遇到了一些困难。又如,我们开发而向Power PC处理器的Linux版游戏文明:天赋神权时,有的工具无法在Power PC机器上使用,于是试着将这一困难用电子邮件发送出去,结果,不知道是谁很快为我们编译出这种工具。我们是处于游戏开发的最前沿,在许多方而都是首次尝试,因此,往往会面对这种初次试用或者无能为力的局面。 采用Linux的最具吸引力之处在于,Linux本身及共附加的大部分应用软件是免费的。不过, 在更多的面向Linux的商业性游戏软件发布以后,潜藏于Linux平台中的游戏市场将会如何发展呢?多莱卡认为,“商业性应用软件正在陆续向Linux移植;.这种趋势今后肯定仍然会继续下去。问题在于商业性应用软件将会如何改变Linux。以互联网为例,以前,网上的资源一直是免费使用的,而现在,这个以内容完全免费的模式启动的互联网,也提供许多收费的内容。一种形式并不一定会不容于另一种形式。在现实中,正是各种各样的不同形式在相互补充共同发生作用。 但是,Loki娱乐软件公司仍然信奉Linux所采取的源代码开发方式。多莱卡这样说:“我们进行某种修改后,立刻就将修改后的源代码送回去。当然,文明:天赋神权和其他游戏的代码不是免费供应的。不过,除了游戏作品之外,我们所开发的应用软件的底层,例如,我们开发的MPEG播放器一其源代码己经开放)和SDL库可以用来替代Directx都己经发送到源代码开放机构。 id软件公司采取的作法迥然不同。该公司的格雷.戴本表示:“我们的游戏软件不开放源代码,今后大概也不会开放。因为我们要通过发放源代码使用许可证来赚取利润。”2.3 Linux是游戏发展的一次机遇 一场操作系统的竞赛正在紧张进行,Linux不可能不战而胜,但是,在竞争中,Linux将会进一步发展完善和增强功能,成为更加优秀的操作系统和游戏平台。 1998年下半年和1999年初,英特尔、网景和康柏、Novall及Oracle公司先后宣布投资红帽软件公可;1999年下半年,舰帽软件公司的股票通过美国全国证券交易商协会自动报价系统Nasdaq以每股14美元的价格上市,并以高达52美元的价格报收、使得这家本来亏损数百万的公司立刻如登龙门身价陡增,其当天的市场价值股票总数量乘以每股售价)达到30多亿美元。电子行业巨头向红帽软件公司注资和该公司股票的成功上市,标志着资本市场对于自由操作系统的认可和广泛而强劲的支持,意味着自由操作系统从后台走上前台同商业性操作系统展开正而交锋,并且,引导自由软件踏上了通向主流的道路,开创出基于互联网模式的自由软件新纪元。 对于Linux的未来、其始作俑者林纳斯.托瓦尔茨气定神闲充满信心。Linux从其1. 0版诞生之日起、就己经是一种初具规模、性能良好、功能齐备的操作系统,而且,在Linux里集聚着Unix摒弃缺陷不断完善的过程中所形成的全部精华,在Linux的背后又有数以万计遍及全球的编程高手热情积极而又不谋私利的支持。有报道说,微软公司技术总监内森.迈赫代尔德于1998年底预测说,Windows操作系统目前的领导地位将在5年内被其他操作系统替代。Linux、网景浏览器、Java操作系统,都可能取代Windows,占领未来的市场。如果这一预言不幸被言中,依托于商业性操作系统的游戏软件厂家应及早进入Linux的天地。 Linux的游戏天地是一片有待耕耘的沃土,是游戏软件厂商一显身手的大好机会。操作系统、许多开发工具及软件等资源都是免费的,还有遍布全世界众多编程高手的热情支持。更为重要的是,通过对开放的源代码的研究和借鉴,可以直接了解其他人优秀的编程思路,避免许多弯路。 参与网站(1) http:/www. red hat. com 它是最流行的Linux发行版本的推出者红帽软件公司的站点,可以下载该公司最新的6. 2版本以及许多应用软件,查阅有关产品、许多开放的资源及有关的消息。 (2)http:/www. slashdot. org. htm 它网罗了关于Linux的所有重要信息的站点,刊载有新闻消息、专题报道、补丁程序、音乐和游戏软件、常见问题解答等用户关心的所有信息、并设置有其他站点的链接。 (3)http:/www. linux games. com. html 该站点设有新闻、旧闻、FTP文件传输协议)服务器及论坛等栏目,Linux游戏以及与其有关的消息报道、补丁与升级、驱动程序、游戏玩法、常见问题解答、有关游戏站点和公司的链接等都可以在这里找到。 (4)http:/www. linuxonline. com 这是Linux Online公司的站点,备有关于Linux的几乎全部资源,包括Linux的历史和吉祥物企鹅的介绍、各种发行版本、大量应用软件、工具、常见问题解答等,并且有新闻组、邮件列表等其他在线文献的信息。 (5)这是由Sun微系统等国际知名公司组成的Linux国际化组织的站点,备有英文、法文、意大利文、西班牙文和日文等许多种版本。 (6)http:/www. tncows. com. html 该站点可以下载Linux系统及其许多应用软件和游戏软件。这一站点在亚洲、欧洲、非洲及美国等地都设有下载服务器,下载时可以选用本地区的服务器,以提高下载速度。 (7)http:/freesoft. cei. gov. cn 该站点由国家信息中心和中国物资信息中心合力、由宫敏博士提供信息源及技术支持的国内自由软件库,也是最全而的Linux资源库。刊载有GNU通用公共许可证(GPL)第二版的英文本和中文翻译稿、Linux常见问题解答,可以下载不同版本的Linux内核、系统及各种应用软件和游戏程序,并且备有国外几个较大的Linux站点的镜像。 (8)http:/www.xteamL 这是冲浪平台软件技术公司的站点,提供Xteam Linux中文版的免费下载。 (9)http:/www. hklug. org. html 这是香港Linux用户团体(HKLUG)由香港的Linux爱好者组成的非赢利机构的站点,有新闻组和聊天室以及邮件列表,有关于Linux的常见问题解答及新闻报道,还有其他Linux站点和资源的链接。第三章 相关介绍和准备工作3.1开发环境及运行环境3.1.1开发环境l Intel Pentium 4 2.0GHz,512M内存,80G硬盘l Microsoft Windows 2000 Professionall Microsoft Cl Microsoft Developer Network for Visual Studio.NET 2003l Visual Assist X 10.1.1301.03.1.2运行环境l Intel Pentium 2及以上处理器,32M以上内存,4G以上硬盘l Microsoft Windows 9X/NT操作系统l 800*600或以上的屏幕分辨率3.2计算机图形学方面的知识3.2.1基本的C作图方法及主循环控制模块Turbo C提供了非常丰富的图形函数,所有的图形函数的原型均建立在graphics.h中,在使用图形函数时要确保有显示器图形驱动程序*.BGI,同时将集成开发环境Options/Linker中的Graphics lib选为on,只有这样才能保证正确使用图形函数。这个程序调用一个EGA、VGA显示器下能独立图形运行的函数。所谓独立图形运行程序,就是在编译和连接时将相应的驱动程序(*.BGI)直接装入到执行程序,从而能在独立的计算机上运行,避免需要重新编译连接才能运行。Turbo C进行画点、画线、封闭图形填充以及图形下文本输出只需要调用graphics.h中相关的函数。主循环控制模块:控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色。这个五子棋程序是用键盘控制下棋,所以要用到Turbo C中的bios.h。在一个循环块中等待键盘信息,判断键盘所输入的信息是否需要响应,调用相关的代码进行下棋。3.2.2图形模式下的文本输出 在C语言的图形模式下,只能用标准输出函数,如printf(),puts(),putchar()函数输出文本到屏幕。除此之外,其它输出函数(如窗口输出函数)不能使用,即是可以输出的标准函数,也只以前景色为白色,按80列,25行的文本方式输出。Turbo C2.0也提供了一些专门用于在图形显示模式下的文本输出函数。下面将分别进行介绍。 一、文本输出函数 void far outtext(char far *textstring); 该函数输出字符串指针textstring所指的文本在现行位置。 void far outtextxy(int x, int y, char far *textstring);该函数输出字符串指针textstring所指的文本在规定的(x,  y)位置。其中x和y为象元坐标。说明: 这两个函数都是输出字符串,但经常会遇到输出数值或其它类型的数据,此时就必须使用格式化输出函数sprintf()。sprintf()函数的调用格式为: int sprintf(char *str, char *format, variable-list); 它与printf()函数不同之处是将按格式化规定的内容写入str 指向的字符串中,返回值等于写入的字符个数。例如: C110F1sprintf(s, your TOEFL score is %d, mark);这里s应是字符串指针或数组,mark为整型变量。第四章 Linux环境下的程序开发Linux作为一个遵循GNU的操作系统其源代码开放性已成为其最大的特点我们可以方便地得到Linux系统及其应用软件的源代码。Linux编程也就是在这样的环境下对程序进行编写或修改工作的学会了Linux编程不但可以自己编写一些共享的小程序供大家使用也可以对现有的软件进行一点修改让它们更适合自己的口味。 Linux下编程的工具很多,不同发行版本的Linux也提供了不同的开发工具但是通常情况下都提供了在控制台终端下的C语言编译程序GCC。我们只要建立一个C语言源程序文件比如hello.。然后在终端下运行:gcc hello.c系统便会自动对程序进行编译,如果没有出错的话,在当前目录生成a.out文件,否则显示出错提示。生成a.out后,我们只需在其所在目录键入/a.out就可以运序了但是这样的文本命令方式的开发工作实在所以现在许多发行版本的Linux都在X-Windo的图形界面下提供了集成开发环境比如蓝点Linux碘Develop等等。这些集成环境不但为我们提供了一个良好的编程界面.也为编程工作提供了极大的方便。 首次运行K Develop时系统会妙运行它的设置安装程序这个程序将验证K Develop所必须的文件是否齐全通过设置后就可以使用了。K Develop为我们在Linux下展现了一个类似于Visual C+的集成开发环境(如图1)在这个环境的左半边有CV, LFV, RFV等几个标签,分别表示了类列表、逻辑文件列表和实际文件列表巅包含了整个工程所有的类和文件的概貌。开发环境的右半边则是文档显示区用于显示源程序或帮助信息。 下面我们就一起来使用K Develop开发两个小程序试试Linux编程的感觉! 我们先来尝试用它制作一个最简单最经典的“Hello world!程序它是在Linux的文本界面即终端中运行的,如同在初学C语言时开发的第一个程序在DOS下运行的“Hello world!”一样。 先打开“项目”菜单,选择“新建”在弹出的Application Wizard中选择”终端程序一C程序“并单击“下一页”(如图2)。在向导的第二页中输入项目的名称等信息,然后把“生成源文件和头文件”前的勾去掉(如图3)。如果不这样做的话,Application Wizard会自动生成一些源代码碰巧还途是我们要做的“Hello world“程序,但我们为了说明向题就不图这个方便了一切自己做。最后单击“生成”按钮,等屏幕出现“Ready”信息后单击“退出”按钮我们的项目便生成了。如图1如图2如图3 接着就得输入源程序了。选择文件菜单中的“新建”命令,新建一个“C/C+程序”(我们的例子是C程序),系统自动按照Application Wizard中选定的文件头模板生成一个空文件。现在输入下面这段经典的程序输入时一定要注意大小写。#include main)printf(1-lello worldln) 然后选择菜单或工具条中的“运行”命令。经过一段时间的编译终端中就会输出“Hello world!”这句话(如图4)。别看这个程序很简单,它确确实实是我们在Linux环境下做的第一个程序呀Linux下的C和ANSI C完全兼容对于学过C程序设计的朋友不能不说是个好消息。现在你是不是已对Linux编程产生了很大的兴趣呢?如图 4 要编写图形程序一个优秀的开发包是必不可少的。如同在C+中的MFC类库K Develop为Linux下编程提供了功能强大的Qt库万A KDE库用它们可以方便地编写X-Window下的KDE图形界面程序。除此之外K Develop还提供了“对话框编辑器”等一系列实用工具使得开发更方便。现在我们一起来开发一个X-Window下的图形版“Hello world“程序。我们选择使用比较简单的Qt库来写程序一起来体验一下这个强大而又易用的开发包。 第一步还是建立工程文件.方法和前面建立终端程序的工程文件类似不同的是在Application Wizard的第一步中要选择“Qt程序一普通”。同样为了说明问题.在W izard的第二步中,我们也把”生成源文件和头文件前的勾去掉我们自己来写程序。工程文件建好后同样新建一个C/C+程序并输入下面的源程序:#include #include int main( int argc, char *sargv)QApplication a( argc, argv);QPushButton hello( Hello world!hello.resize( 100, 30):a.setMainWidget( &hello)hello show()return a.exec(); 与前面的C程序相比这个程序的确复杂得多,我们一行行进行分析。程序俞两行调用了两个头文件其中qappl ication,h是建立一个Qt程序所需的彝基本的库,任何Qt程序都要用到它。由于我们打算用一个按钮来显示“Hello world!“的文字所以还要包含qpushbutton.h这个头文件。主程序第一句建

温馨提示

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

评论

0/150

提交评论