基于Python的Pygame框架研究.doc
《基于Python的Pygame框架研究.doc》由会员分享,可在线阅读,更多相关《基于Python的Pygame框架研究.doc(28页珍藏版)》请在咨信网上搜索。
1、齐齐哈尔大学毕业设计(论文)齐 齐 哈 尔 大 学 毕业设计(论文)题 目基于Python的Pygame框架研究 学 院 计算机与控制工程学院 专业班级计本111 学生姓名王攀拓指导教师赵鑫成 绩2015 年 06 月 19 日摘要该论文论述了Python语言中Pygame库的框架结构和一些常用的该库的API,使用Pygame库进行2D游戏开发时需要注意的事项,以及进行2D游戏开发的常用技巧,站在开发者的角度,理论系统的讲解了Pygame游戏开发中的使开发技巧.本论文旨在帮助入门级Pygame游戏开发者能够快速的适应和熟悉该框架的开发规范,能够迅速的使用Pygame框架进行相应的游戏开发.这个
2、Pygame框架是一个对所有程序员开放的Python库.Pygame作为Python语言的扩展,它的所有书写规范都完全按照Python的语法规则来进行设计和开发。而作为一个开放的语言库,意味着开发者能够更多的看到底层代码的运行原理,甚至修改底层代码从而对开发者自身的程序进行优化,当然着所有都得建立在开发者熟悉Python语言的基础上。本论文站在理论的高度对Python下的Pygame框架进行了全面详细的介绍和说明,还有更进一步游戏开放方面的技术指导,作为Python入门级的介绍,本论文足以满足Pygame初学者的学习需求。关键字:Pygame;框架;游戏开发;源代码开放AbstractThis
3、 paper discusses the framework Pygame Python language library and the library some common API, matters need attention when using Pygame library 2D game development, as well as common 2D game development skills, developers perspective is standed , system theory to explain the Pygame game development
4、make development skills。 This paper aims to help entry-level Pygame game developers to quickly adapt and become familiar with development specifications of the framework can quickly use Pygame game development framework accordingly.The framework is running under the Python language an opened source
5、runtime. Pygame Python as an extension language, its all written specifications are fully in accordance with the rules of grammar Python to carry out design and development. The library as an opened language, meaning that developers can see more of the operating principle underlying code, or even mo
6、dify the underlying code so developers optimize their programs, of course, with all the familiar developer had to build in language Python basis。In this paper, at the height of the theoretical framework for Python Pygame under a comprehensive detailed introduction and description of the game as well
7、 as a further opening up of technical guidance, as Python entrylevel introduction, this paper is sufficient to meet the learning needs of beginners Pygame 。Key words:Pygame;Frame;Game Development; Open sourceI目录摘 要IAbstractII第1章 绪论111 课题研发的目的与意义112 可行性分析213 国内外研究现状3第2章 Pygame基础42。1 Pygame来自Python42。
8、2 Pygame环境的要求52。3 Python语法简介52。4 Pycharm简介62.6 Pygame环境搭建6第3章 Pygame模块93。1 Pygame文件结构93。2 事件103。2.1 事件机制103.2.2 事件处理函数103.2.3 鼠标事件处理113。2。4 键盘事件处理123.2。5 事件过滤123。3 图像123。3。1 色彩像素123。3。2 图片处理133。3。3 动画处理133。4 声音143。5 动作163.5.1 精灵163。5.2 向量173。5。3 碰撞检测183.6 控制183.6。1 键盘控制183.6。2 鼠标控制183。7 游戏地图19第4章 Py
9、game进阶204。1 AI智能204.1。1 状态机204.1.2 AI设计214。2 游戏优化21第5章 Pygame开发思路235.1 设计游戏235。2 开发进程235.3 开发思路24结 论25参考文献26致 谢27第1章 绪论电子游戏自上个世纪诞生以来,以着不可思议的速度发展着,从最初的按钮丢硬币简单的游戏到如今的模拟的视频游戏,电子游戏从最初的纯娱乐产品到现在的游戏行业,他的生命力越发的旺盛和持久,甚至游戏行业可以在美国经济萧条的时候力挽狂澜而成为主要产业.诚然,所有的游戏开发都离不开游戏开发人员的辛勤耕耘,而支撑这些繁荣景象的正式一行行的程序代码,优秀的代码才能生产出令人满意的
10、游戏。但是作为世界级的前端技术,由于技术的封闭,程序开发始终只能是少数高端技术员的天下,在保护技术不扩散的同时,也大大的限制了程序开发的创新和发展,毕竟智慧藏于群众.而Python语言的出现,正是有力的打破了程序开发的技术壁垒,开源的程序语言为更多的项目开发提供了更多的语言选择,而开源语言的有点也在这体现,各种方便的接口API和别人书写好的库源代码更好的方便了开发人员的技术选择,从而加快了开发人员的开发进度,而所有的这一切正是与当今要求速度的市场需求不谋而合.作为开源语言的领军人物,Python语言正以着势不可挡的势头冲破并领军整个IT开发行业.Pygame是Python下的一个开源游戏框架,
11、继承了Python开源、快速的优点,还增加了更多的游戏开发的API,使得2D游戏开发进度大大的加快。11 课题研发的目的与意义告诉的经济发展给我们带来的不仅仅是生活水平的提高,增加的生活压力使得人们在日常上班之余需要更多的娱乐项目来放松自己。无论是传统的服务行业还是新兴的娱乐行业都是旨在为大众提供一种消遣时间放松自己的方式,而电子游戏的出现更是给传统的消费市场注入了一种前所未有的新鲜活力.从简单的按钮游戏到模拟逼真的视频游戏,不断提高的游戏开发技术给人们带来了越来越丰富的游戏体验.但是,随着移动设备的增加和人们加快的生活节奏,“小轻快”的移动端游戏席卷了整个游戏市场,例如疯狂的小鸟、飞机大战等
12、上手速度快、画面精美的2D游戏引来不少玩家的疯狂追捧.伴随着玩家需求的迅速变化以及游戏市场的时间效应,游戏的开发周期和开发效率成为众多游戏开发者的热枕对象.Python语言作为一种开源的非编译语言,强大的可扩展性以及简单的语法结构迅速的走入了游戏开发者的视野。而Python下的Pygame开源库就是这样一个能够承载游戏开发程序员开发效率的这样一个开源的可扩展的库。作为一个开源的游戏开发库,Pygame为游戏开0发工作者提供了很多方便的接口API,借助这些API大大的缩短了开发周期,减少了游戏的研发成本。手游搜索量百度搜索量如下图所示:图11 手游搜索量作为新兴的Python开源语言,Pytho
13、n近四年的百度搜索量如下图所示:图12 python搜索量12 可行性分析Python是一门开源的语言,其对平台的支持性表现的较为出色,目前市面上流行的windows系列、MAC系列甚至移动设备的Android系统都提供良好的平台支持。所以对游戏开发者而言,选择Python语言来开发游戏源代码就不用考虑程序代码不同平台的兼容性。Pygame作为Python下的开源库,不仅良好的继承Python特有的语言优势,诸如语法简单、数据类型强大、API操作简单、面向对象的编码方式云云,还增加了自己特有的框架优势,提供的像pygame.cdrom光驱模块能够直接调用设备光驱从而大大减少了程序开发人员代码编
14、写量。当然,Pygame还有很多的特别方便的模块函数来提供相应的技术支持。对于玩家来讲,一个游戏首当其冲的应该是游戏画面是否符合他们的口味,而轻量级的Pygame库对于画面渲染的支持更是绰绰有余,尤其是针对2D游戏开发来讲,Pygame在这个方面表现的甚至比其他语言表现的更加优秀,而这也正是选择Pygame来进行2D游戏开发的最有利的技术支持.总上所述,无论是Pygame库的技术支持,还是对游戏开发效率的考虑,Pygame在2D游戏开发方面都有着无比天然的优势存在,而这些正式本文对于Pygame框架研究的理论和实践动机.13 国内外研究现状Python从诞生之初就以其简单的语法、良好的易读性、
15、开放的可扩展性吸引了大批的程序员纷纷学习使用,随之而来的,更多的国外大学机构使用Python来进行计算和授课,甚至许多的知名大学吧Python语言作为程序员入门级别的必学语言。比如说麻省理工学院的计算机科学与编程导论、卡耐基梅隆大学的编程基础都用Python语言讲授,还有很多的科学机构也在采用Python来进行大型的科学计算,众望所归,Python语言在科学计算方面表现的非常优异。Pygame作为Python的优秀的扩展库之一,也吸引了越来越多的开发者使用Pygame来进行游戏开发。随着Python语言的流行,更多的游戏开发者将加入Pygame开发游戏者的大军中。相对于国外对Pygame研究的
16、热火朝天,国内则显得比较冷淡,甚至市场上都没有一本完整的介绍Pygame框架的指导书,所有的有关Pygame的资料只能从Pygame的官方网站的文档里来获取,但这些远远不能够满足国内一线游戏开发人员的开发需求。本文立足Pygame的官方文档为技术支持,加上自己对游戏开发的理解,全面而系统的对Pygame框架进行介绍和讲解,从而来填补国内这个方面的就属空白,希望能对更多的游戏开发人员更大的启发.第2章 Pygame基础对于任何的开发游戏而程序员来讲,对开发语言的了解一定要有基本的了解,正所谓兵马未动粮草先行,本章节就简单的介绍一下Pygame相关的开发需求和Pygame的语言基础语法。2。1Py
17、game来自PythonPython作为现代编程语言的一种,也是一种面向对象的语言,由于它的非编译性而且更多的是一种解释性语言,可以很好的包装进其他的语言种类,具有这样的性质,我们可以称它为胶水语言。Python俨然成为一种更高层次的通用解释型的语言种类,正是由于这些特征,使得它能够跻身成为目前全世界范围内最受欢迎的编程语言之一.即使我们更多的称呼它为脚本语言,但是也是有很多的大型项目采用Python语言来进行架构,比如豆瓣网、Google的后台等等。Python的特点可以归类为已下几个特征:1. 简单易学:Python的关键字较少,结构固定且简单,语法相对简单,很快就能学会。2。可读性强:P
18、ython代码定义的更清晰。3.维护简单:Python的源代码维护起来非常方便。4。丰富的标准库:Python的最吸引人的地方就是平台兼容性好,可兼容windows和MAC等平台。5。即时调试:人机的交互是即时展现的,可在控制台输入即执行。6.黏合性好:多种硬件平台的Python接口都相同,硬件黏合性表现优异.7.易于扩展:程序员可以根据需要来添加任意低层次的库。8。良好的数据库支持:目前市面上所有的商业数据库都有Python支持的接口。9.支持GUI编程:GUI编程的良好支持可以一直多种平台。作为一个开源的语言种类,Python被全世界的程序员扩展出了各种各样的库,Pygame就是其中之一.
19、Pygame是一种使用SDL(Simple DirectMedia Layer)编写的游戏库,即使SDL是采用C语言进行编写的,不过他也可以采用C+来进行编写和扩展,正如你所见Pygame就是Python下的一个开源的数据库。随着越来越多的优秀的程序员加入Pygame的开发,Pygame的完善性会越来越好。2。2Pygame环境的要求Pygame作为Python下的一个开源框架,平台的兼容性非常的好,目前市面上流行的几乎所有的操作系统都有很好的支持,随意对平台要求不是很高。而且,作为一个非编译的语言种类,对开发平台的硬件需求也不会有很大的要求,一般的平台配置就满足开发需求。而本文为方便起见所有
20、的代码都运行在windows7下的平台上,其他操作系统例如MAC系统可以参照windows7系统下的操作来进行环境的配置和搭建.2。3 Python语法简介Python设计之初就是是为了语言代码的可读性高度完美。在语言设计之初就考虑到了这点,语言尽量使用其他种类的语言中常见的单词语法,标点符号也是采用其他语言的标点,这样Python代码结构看起来相当美观.有别于静态语言诸如C语言那样大量的重复性语句,也不会有特殊的语法出现显得代码结构不协调。Python采用缩进的强制性代码书写规范使得所有Python的程序员养成优秀的代码书写习惯.采用缩进规则的好处就是,使用缩进的位置来控制代码块的退出和进入
21、 ,而不是其他代码用特殊符号例如花括号来控制语句块。Python的控制语句和其他语言基本类似,主要有以下几种:if语句,当条件成立时运行语句块。和if配和使用的有else和elif。for语句,作为最重要的遍历语句,可以使用for语句便利所有的Python数据结构。while语句,当控制条件为true时,代码块中的代码会循环执行。try语句。except,finally配合try语句块使用以此处理程序代码中的异常情况class语句。用于定义类型。def语句。可以进行函数或者类型的自定义.pass语句。慈航代码不执行,以空行执行。assert语句。调试程序时采用此语句来测试运行条件是否满足。wi
22、th语句。在Python2。6新增的语法语句用来把语句块在一个场景中运行.例如代码块对数据进行加密,退出代码块后即时进行数据解密。yield语句。迭代器时使用,返回值是一个迭代器的元素.就是从Python2.5以来这个语句变成一个运算符。raise语句。制造一个错误。import语句。导入一个模块或包。from import语句。导入包中的某个模块或者导入模块中的某个对象。import as语句。将导入的对象赋值给一个变量.in语句.判断一个对象是否在一个字符串/列表/元组里.Python语言的表达式和C/C+有许多相同之处.区别只是很少的一部分。主要的大部分算术运算符与C/C+类似.加法或者
23、取正、减法或者取负、乘法、除法、整除、乘方、取补、取模的表示方法使用+, , , /, /, *, , %表示., =, 必须在整数中使用.Python的逻辑运算使用and、or、not。Python对于字符串的处理则采用(单引号)和“(双引号)来表示字符串。Python更为高级的一点,支持对list数据格式的切割,可以保存完整数据或者一部分数据。对函数的递归、默认参数、可变参数都有很好的支持,但函数的重载并不支持。对象的方法是指绑定到对象的函数。作为动态系统的一种,Python作为一种面向对象的语言支持程序员根据需要进行类型的自定义.2。4 Pycharm简介工欲善其事,必先利其器,Pyth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python Pygame 框架 研究
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。