版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Python推箱子游戏的设计与实现TOC\o"1-2"\h\z\u1.引言 12.游戏分析 12.1游戏功能分析 12.2界面分析 22.3游戏系统模块分析 23.游戏的设计与开发 33.1配置环境 33.2游戏设计 33.3使用函数 33.4系统流程图 43.5游戏各模块流程图介绍 63.6游戏关卡的背景设置模块 73.7(模块 83.8 8 8 94.软件调试与实现 94.1游戏程序的调试与测试 114.2遇到的问题和解决办法 125.结论 136.结语 13参考文献 15PAGEPAGE11PAGEPAGE10摘要Python;主要PythonIDLEpygamesurface。最后Debug关键:推箱子游戏视觉呈现pygamePython引言无限,而且被越来越多的人所接受和喜爱。棋类的棋牌游戏,火柴人快打,乱斗类的动作游戏等等到现在的使命召唤,CF游戏分析游戏功能分析推箱子游戏的游戏任务仔细分析的话就是在搭建好的游戏界面上引用人物戏人物形象的功能,以上功能的全部完成即实现了推箱子游戏的功能。的位置是否可以移动。其中简单的逻辑判断就分为四个点:判断小人的下一个点是否可以走,即在规定的区域里面可以移动。小人移动。以移动。箱子可以才可以移动,反之则不可以移动。分编写基本上就是完成推箱子游戏设计的主题内容。界面分析计主要包括:页面的尺寸的确定(长、宽的数据参数,可更改(页面上被索引使用,窗口的刷新率。游戏运行页面即开始游戏后的呈现的页面,其中游戏运行页面需要设置再确定目的地的位置。在本次推箱子游戏根据本人的习惯,主要是通过电脑上的按键控制游戏推动至死角,则本次游戏通关失败,按“backspace”键即可重新开始。添加了一项辅助功能,通过进入游戏关卡后可以看移动的步数,这一项游戏系统模块分析pygame模块:Python内置模块,游戏设计模块Python和进入游戏以后的游戏界面。sys模块:系统相关的信息模块Pythondebug决出现的问题。os模块:操作系统相关的调用和操作Python文件在代码中比如游戏地图所在的文件进行调用,以实现游戏的功能。math模块:数学模块,进行数学计算该模块中主要负责对代码中所有的函数进行调用,其中包括int函数和print函数等基本函数的使用。random模块:生成随机数在本次的游戏设计中主要实现的功能为在代码中根据这个模块对场景内的背景(除了关卡地图以外的其他元素)进行随机的排列和安放[3]。PythonIDLEpygame还有许多重要模块,sys游戏的设计与开发配置环境Python3.9Python3.9Pythonwindows10(64bit)PythonPython3.9(64bit,否则无法运行。PythonIDLEPythonIDLEPythonGuidovanRossumIDLEPythonIDLE功能,其中包括用来测试部分模块代码的断点、步进和函数变量监控功能。IDLEDLEIDLEpygame模块PygamePython以完成在设计游戏的主要界面,调用图像模块,调用背景音乐,同时也类似PythonPeteShinnerSDLC间放在开发游戏本身上,更加节约时间。pygame模块安装Pygame的安装需要满足两个条件,即安装了Python和pip,在安装的同时要将环境变量设置好。在Python官网上找到下载的pygame模块的下载部分,然后对应到下载的Python的版本后,下载后进行安装。把下载好的pygame模块的wheel文件放在电脑中下载的Python文件夹的pip目录下。打开cmd对话框,然后再对话框内输入pygame模块的存放路径点击enter即可。游戏设计使用函数Main():主函数,控制游戏的所有进程,需要在程序开始处,所有的模块调用前需要在前面添加该函数。Init():初始化函数,该函数在本次设计中主要在游戏初始界面设计模块前添加该函数。Paint_screen():绘制界面幕布,游戏界面背景颜色和布局,主要在游戏界面模块处调用该函数。Move():控制小人移动,控制窗口镜头的移动,分别在游戏控制模块和游戏小人移动模块中调用该函数。Reset():重置Surface对象,在每次进入游戏和游戏重置的情况下实现该函数的功能,在游戏控制功能中调用该函数。Image.load():载入图片,将背景中的元素图片调用在代码中,被pygame模块调用放在游戏初始化界面和游戏界面中呈现出来,主要在游戏界面设计模块中调用该函数。Font():载入字体,在游戏初始化界面和游戏通关是出现的界面中会出现文字,分别是游戏操作说明和按任意键进入下一关的字样,主要在游戏界面设计模块中调用该函数。系统流程图本次所设计的推箱子游戏设计系统总流程图如图1所示。图1系统总流程图界面中标明了星星和小人的位置。游戏界面进入游戏开始游戏,或者直接退出游戏。正常情况下进入游戏界面,移动小人,按照游戏规则推动箱子。系统在每次接收到小人移动都刷新一次窗口并加载当前的游戏关卡的地图家按下控制镜头移动的按键,否则镜头不会根据小人的移动而移动,当小人推动箱子时,每一步的推动,系统就会根据情况判断场景中的箱子(1)游戏主程序流程图游戏主程序流程图如图2所示。图2系统主程序流程图息。pygame设置窗口大小,标题字体等信息。进入开始的初始化界面根据提示按下任意键后进入游戏关卡地图开始游戏。默认先呈现第一关关卡的地图信息。判断是否出现问题,出现问题直接退出游戏,没有出现问题则继续游戏。根据实际操作,若进行当前关卡同时想直接进入上一关卡或者下一关卡,游戏进度,系统重新加载当前关卡,并继续闯关(2)游戏开始界面游戏开始界面流程图如图3所示。图3游戏开始界面流程图设置字体,窗口高度并初始化标题设置窗口背景色,明显标题,和说明根据使用者的操作判断系统下一步的动作按下任意按键后即可进入游戏界面使用者进行操作后结束游戏或进入下一关游戏各模块介绍(1)画图模块介绍图4画图模块如图4所示,Pygame游戏界面上。(2)初始化模块初始化模块如图5所示。 图5初始化模块图该模块主要用于每次进入游戏界面和重置游戏界面时,初始化模块会实时更新游戏当前的情况,然后构建当时游戏进度的场景。(3)功能控制模块功能控制模块如图6所示。图6功能控制模块图输出功能则是在进入游戏初始化界面的时候界面会提供设置好的所有的基础信立于代码逻辑判断的一项功能,无论游戏失败与否,当玩家按下“backspace”游戏的逻辑判断,可以直接操作。游戏关卡的背景设置模块pygame游戏地图代码设计这一部分的编码需要用到不同的字符对应关卡的地图中所有的元素然后按pygame就可以表现游戏地图。“@$箱子。游戏关卡地图代码如图7所示。图7游戏关卡地图代码游戏界面中引用背景图片的代码可替换的五个小人形象图片(即箱子pygame块对这些图片索引。(模块pygame模块即可呈现。星(箱子,如果没有星星(箱子)则让小人可以前进移动。如果星星(箱子)箱子遇到墙也同理,也无法移动。Python中常用的递归函数,递归函数在这个模块标志就是游戏中箱子推动至目的地,系统判断闯关成功即可。脑键盘上按下相应按键游戏就发生相应的变化。其中相应的代码控制按键包括以下项:在键盘上选择除“esc”以外的按键在当前游戏通关按任意键后,就可以进入到下一关的游戏界面通过按“backspace”部置零。“W”“S”“A”“D”就可以获取到看不见的地图的视角,在游戏过程中可以选择按字母键“B直接进入下一关,字母键“N”直接返回至上一关的游戏关卡。除非玩家手动控制镜头移动以外,镜头的相关参数不会发生变化。个目的地都有星星(箱子戏的结束,这个游戏结束需要手动重新开始,即按“backspace关卡。没有完成通关,并继续通关[2]。会包括:游戏界面(游戏初始化界面和游戏界面(的坐标变化而变化计。软件调试与实现首先打开设计好的推箱子游戏的“starpush.py”文档,然后在Python3.9上运行该文件,会出现初始界面显示“面向过程的推箱子游戏设计”“贾雯斐”“2017321110”这些添加进去的个人信息,以及按键操作提示。初始界面如图8所示。图8初始界面随即在键盘上选择除“esc”以外的按键,就可以进入游戏界面内。游戏界面如图9所示。图9游戏界面通过正常的对游戏小人的控制,将游戏界面内的星星(箱子)全部依次推动至粉红色的目的地位置后就会出现“solved”的字样,表示游戏任务完成了,同上,选择除“esc”的任意键即可进入下一关,然后继续游戏。游戏界面如图10所示。图10游戏界面按任意键以后,就可以进入到下一关的游戏界面,同上,按键上下左右控制小人的移动后将星星依次推动至相关位置即可满足游戏任务,然后进入下一关。下一关界面如图11所示。图11下一关游戏界面候,通过按“backspace”置零。在关卡内可以通过按字母键“p”,就可以更换控制的人物角色,有多种小人可以选择。如果到后续的比较困难的关卡,地图的大小超过了窗口的大小,就可以通过选择按字母键“W”“A”“S”“D”来控制地图的上、下、左、右移动,然后就可以获取到看不见的地图的视角,然后继续进行游戏通关。在游戏过程中可以选择按字母键“B”用来放弃当前关卡的游戏进度然后直接进入下一关,字母键“N”则是相反的功能,就是放弃当前的游戏进度然后直接返回至上一关的游戏关卡。游戏程序的调试与测试求,以确保游戏程序的质量和精度能满足最后的要求,甚至可以完成的更好。Python程序的调试需要设置断点,需要开始在程序中添加入调试模块importpdbPython3.7python-pdbmain.py。如表1所示:pdb是基于命令行的调试工具,非常类似于gdb。表1命令语句命令简写命令作用breakb设置断点continuec继续执行程序listl查看当前行的代码steps进入函数returnr执行代码直到从当前的函数返回quitq终止并退出nextn执行下一行printp打印变量的值helph帮助argsa查看传入函数的所有参数回车重复上一条命令breakb显示所有断点breaklinenoblineno在指定行设置断点breakfile:linenobfile:lineno在指定文件的行设置断点clearnum删除指定断点bt查看函数调用栈帧具体操作如下:(1)程序启动后,在第一行等待单步调试python-mpdbtest.pyimportpdbpdb.run('testfun(args)')#此时会打开pdb调试(3)当程序运行至pdb.set_trace()需要识别并停下来测试代码上下文...importpdbpdb.set_trace()...遇到的问题和解决办法Python3.9IDLE64bit32bitPython3.9IDLE在安装Python3.9pygamepipPythonIDLEpygamePython3.9wheelpippygamepygame在设计过程中使用最多的就是在设置游戏背景时的图片索引和功能按键的pygamepygameelif-event.key==后来在论坛上寻找例子和模板,才正确的完成这部分代码。debug功能。结论近年来随着科技的迅速发展,PythonPython能长盛不衰。IDLEpygame功能实现。的移动进行定位,进而继续判断游戏是否成功;被程序调用;“↑”“↓”“←”“→”“W”“A”“S”“D”“B”“N”“backspace“P”移动的同时,控制镜头的移动。debug修改不合适的参数,到最后的游戏功能完全实现。结语参考文献江岸.基于python实现网络游戏脚本系统的设计与实现[A].广东农工商职业技术学院.2013.瞿苏.基于python的飞机大战游戏设计[A].扬州:江苏旅游职业学院,2019.谢玉庚.推箱子游戏目标间的遮掩关系的分析[A].2018.吴玑震.飞机大战游戏软件中的数据结构和策略分析[J].信息与电脑,2016.杨大生.基于Symbian平台飞机大战游戏设计[J].雷丽娟,郑永彬.使用Java制作贪吃蛇游戏[J].科技视界,2013(4):139-140.蔡敏.Python语言的Web开发应用分析[J].无线互联网科技,2019,16(4)27-28.夏敏捷,潘惠
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某电子厂质量监管制度
- 温州市区玉林110千伏输变电工程环境影响报告表环境影响报告表
- 放射治疗设备年度性能检测指南(2025版)
- 家政服务员技能培训指南(2025版)
- 骨科伤口负压引流临床应用共识
- 2026年9月南宁市中职高三月考数学试题卷和答案
- 2026蓄水排水试题题库及答案
- 2026年四川省专业技术继续教育公需科目考试及答案
- 2026年建筑工程师建筑施工现场安全管理培训试题及答案
- 新建年产2000套磁流体密封件和2000套高端蝶阀零部件项目可行性研究报告模板-立项备案
- 2026四川绵阳市疾病预防控制中心招聘卫生执法监督协管员3人笔试模拟试题及答案详解
- 2026年辽宁省大连市辅警人员招聘考试试题及答案
- 新版2026秋新人教版五年级上册语文全册教案合集
- 习作:传承好家风 课件 统编版语文六年级上册
- 2025年新交安安全员b证考试题库及答案
- 2026秋新教材译林版五年级上册英语Unit 1 Good habits 语法讲义+练习题(含答案)
- 《关于办理贪污贿赂刑事案件适用法律若干问题的解释(二)》深度解析
- 储罐焊接施工方案
- 2025-2030中国菠萝蜜市场销售渠道及未来供需平衡预测研究报告
- 大班幼儿家庭教育案例分享
- 2026年医院搬迁住院患者转运与医疗保障方案
评论
0/150
提交评论