您好,欢迎来到微智科技网。
搜索
您的当前位置:首页基于Python的小恐龙游戏设计与分析

基于Python的小恐龙游戏设计与分析

来源:微智科技网
2019年6月25日第3卷第12期

现代信息科技

Modern Information Technology Jun.2019 Vol.3 No.12

基于Python的小恐龙游戏设计与分析

董彧先

(天津铁道职业技术学院 铁道电信系,天津 300240)

摘 要:Python是一种跨平台的、开源的、免费的、解释型的高级编程语言。它具有丰富的、强大的库,能够把其他语言制作的各种模块很轻松地联结在一起,所以Python常被称为“胶水”语言。Python语言近几年发展势头迅猛,应用领域也非常广泛,在Web编程、图形处理、黑客编程、大数据处理、网络爬虫、科学计算和游戏编程等领域都能找到Python的应用。Python语言的研究和发明主要是为了便于学习和应用,因此Python语言是开源的,并且语法非常简单、容易编写和理解。本文通过对小恐龙游戏的设计与分析,掌握Python语言在游戏开发领域的优势。

关键词:Python;游戏开发;计算机语言;程序设计中图分类号:TP311.1

文献标识码:A

文章编号:2096-4706(2019)12-0081-03

Design and Analysis of Little Dinosaur Game Based on Python

DONG Yuxian

(Department of Railway Telecommunications,Tianjin Railway Technical and Vocational College,Tianjin 300240,China)

libraries,which can easily connect various modules made by other languages. So Python is often called “glue” language. Python language has developed rapidly in recent years,and its application fields are also very wide. It is used in Web programming,graphics processing,hacker programming,big data processing,network crawler,scientific computing and game programming. Python language research and invention is mainly for easy learning and application,so Python language is open source,and the grammar is very simple,easy to write and understand. Through the design and analysis of small dinosaur game,we can grasp the advantages of Python language in the field of game development.

Abstract:Python is a cross-platform,open source,free,explanatory high-level programming language. It has rich and powerful

Keywords:Python;game development;computer language;programming

0 引 言

Python是一种计算机程序设计语言,是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,Python越来越多被用于的大型项目的开发。Python语言在游戏开发领域有着自己的优势,可以通过相对于其他编程语言更加人性化的语法和更加少的代码量来完成相同的任务。

在本文设计的基于Python的游戏中会看见一只小恐龙,按下键盘中的空格键就能激活该恐龙,然后可以通过空格键来控制小恐龙的跳跃进行障碍物的躲避,并且躲避障碍物的数量进行分数的统计。

2 小恐龙游戏主窗体的实现

在Python游戏开发中,主要使用Pygame模块,这样可以使小恐龙游戏的开发变得简单很多。创建名称为dinsosaur的文件夹,该文件夹用于保存小恐龙游戏的项目文件,然后在该文件夹中分别创建两个文件夹,一个命名为audio,用于保存游戏中的音频文件,另一个命名为image,用于保存游戏中所使用的图片资源。最后在dinosaur文件夹中创建dinosaur.py文件,在该文件中保存实现小恐龙游戏的代码。首先导入Pygame库与Pygame中的常量库,然后定义窗体的宽度与高度。

其次,创建mainGame()方法,在该方法中首先进行Pygame的初始化工作,然后创建时间对象用于更新窗体中的画面,再创建窗体实例并设置窗体的标题文字,最后通过循环实现窗体的显示与刷新,经过初始化以后就可以尽情地使用Pygame了。使用Pygame时钟之前,必须先创建Clock对象的一个实例,从而控制每个循环多长时间运行一次。通常来说需要先创建一个窗体,方便程序员与代码交互。

在实现一个可以循环滚动的地图时,首先需要渲染两张地图的背景图片,然后地图1的背景图片展示在窗体中,而另一张地图2的背景图片需要在窗体的外面进行准备,如图

1 Python小恐龙游戏的设计流程

在游戏主窗体下完成显示小恐龙、显示滚动地图、随机显示障碍物。在显示小恐龙的同时编写小恐龙的跳跃功能和音效。同时判断游戏中移动的障碍物是否与小恐龙发生碰撞。如果小恐龙与障碍物发生碰撞则播放碰撞音效、显示游戏结束画面、显示游戏积分。如果小恐龙没有与障碍物发生碰撞,则只显示跳过障碍物后的积分变化。

收稿日期:2019-04-29

2019.681

第12期1所示。

虚线边框为窗体

地图1

地图2

图1 游戏主窗体

然后两张地图同时以相同的速度向左移动,此时窗体外的地图2背景图片将跟随地图1背景图片进入窗体中,这样就完成了地图的循环播放,如图2所示。

地图1

地图2

图2 游戏背景移动

当地图1完全离开窗体的时候,将该图片的坐标设置为准备状态的坐标位置。通过不断颠倒两张图片的位置,然后再进行平移,就可以在用户的视觉中形成一张不断滚动的地图。通过代码实现滚动地图的具体步骤如下:

(1)创建一个名称为KongLongMap的滚动地图类,然后在该类的初始化方法中加载背景图片、定义X与Y的坐标。

(2)在KongLongMap类中创建名为rolling()的方法,在该方法中根据地图背景图片的X坐标判断图片是否移出窗体,如果移出就给图片设置一个新的坐标点,否则按照每次6个像素的跨度向左移动。

(3)在KongLongMap类中创建名为update()的方法,这样就可以实现地图无限滚动的效果。

(4)在mainGame()方法中,设置标题文字代码,在下面创建两个背景图片对象。

(5)在mainGame()方法中循环,实现无限循环滚动的地图。

3 可以跳跃的小恐龙

在实现小恐龙跳跃时,首先需要设置小恐龙在地图上默认的固定位置,然后判断是否按下了键盘中的空格键。如果按下了就开启小恐龙的跳跃开关,让小恐龙以6个像素的距离向上移动。当小恐龙到达窗体的顶部边缘时,让小恐龙以6个像素的距离向下移动,回到地面后关闭跳跃的开关。具体的实现步骤如下:

(1)导入迭代工具,创建一个名称为Dinosaur的恐龙类,然后在该类的初始化方法中首先定义小恐龙跳跃时所需要的变量,然后加载小恐龙跑动的三张图片,最后加载小恐龙跳跃时的音效并设置小恐龙默认显示的坐标位置。

(2)在Dinosaur类中创建Jump()方法,通过该方法实现开启跳跃的开关。

(3)在Dinosaur类中创建Move()方法,该方法先判断小恐龙的跳跃开关是否开启,再判断小恐龙是否在地面上,如果满足了上面的两个条件,小恐龙就以6个像素的距离向上移动。当小恐龙到达窗体顶部时会以6个像素的距离向下移动,当小恐龙回到地面后关闭跳跃开关。

(4)在Dinosaur类中创建dinosaur()方法,在该方法中首先匹配小恐龙跑步的动图,然后进行小恐龙的绘制。

(5)在mainGame()方法中,在创建地图对象的代

82

2019.6现代信息科技

码下面创建小恐龙。

(6)在mainGame()方法的while循环中,判断关闭窗体的下面判断是否按下了空格键,如果按下了就可以开启小恐龙开关,并且播放跳跃音效。

(7)在mainGame()方法中绘制地图代码下面实现小恐龙的移动与绘制功能。

4 障碍物的出现

在实现障碍物的出现时,首先需要考虑到障碍物的大小以及障碍物的不同,如果每次出现的障碍物都是相同的,那么该游戏将失去游戏的乐趣。所以,需要加载两个大小不同的障碍物图片,然后随机抽选并显示。此外,还需要通过计算来设置多久出现一个障碍物并将其显示在主窗体中。具体的实现步骤如下:

(1)导入随机数,创建一个名称为Obstacle的障碍物类,在该类中定义一个分数,然后在初始化方法中加载障碍物图片、分数图片以及加分音效。创建0至1的随机数数字,根据该数字抽选障碍物是石头还是仙人掌,最后根据图片的宽高创建障碍物矩形的大小,并且设置障碍物的绘制坐标。

(2)在Obstacle类中首先创建move()方法用于实现障碍物的移动,然后创建Obstacle()方法用于实现绘制障碍物。

(3)在mainGame()方法中创建恐龙对象的代码,下面定义添加障碍物的时间与障碍物对象列表。

(4)在mainGame()方法中绘制恐龙的代码下面,计算障碍物出现的间隔时间。

(5)在mainGame()方法中计算障碍物间隔时间代码的下面,循环遍历障碍物并进行障碍物的绘制。

(6)在mainGame()方法中更新整个窗体代码的上面,增加障碍物时间。

5 碰撞与积分

在实现碰撞与积分时,首先需要判断小恐龙与障碍物的两个矩形图片是否发生了碰撞,如果发生了碰撞就证明该游戏已经结束,否则判断小恐龙是否越过了障碍物,确认跃过后就可以进行加分操作,并将分数显示在窗体顶部中间的位置了。具体步骤如下:

(1)在Obstacle类中,Obstacle()方法的下面创建getscore()方法用于获取分数并播放加分音效,然后创建showScore()方法用于在窗体顶部中间的位置显示分数。

(2)在mainGame()方法的上面创建game_over()方法,在该方法中首先需要加载与播放撞击的音效,然后获取窗体的宽度与高度,最后加载游戏结束的图片并将该图片显示在窗体的中间位置。

(3)在mainGame()方法中,绘制障碍物代码的下面判断小恐龙与障碍物是否发生碰撞,如果发生了碰撞,就开启游戏结束的开关,并调用game_over()方法显示游戏结束的图片;否则判断小恐龙是否跳过了障碍物,跃过就进行分数的增加并显示当前得分。

(4)为了实现在游戏结束后再按下空格(下转85页)

黎德森:大数据分析在教学质量评价中的应用第12期

(续表)

是否注重实践研究以及创新能力的培养

模式改革

教学方法手段

多元考核、多元评价方式

……

利用网络交流平台及时交流信息,如

微信等网络平台

……

通过本课程学习,学习能力及学习效果的增加课程学习

效果在达到课程学习目标方面,取得的进步

……

投入本课程的学习时间与精力

学生学习状况

学习投入状况

每堂课的课前准备工作本课程的学习压力与挑战

……

对于自身的基础与能力而言,本课程

的难易程度

课程难易

与相同学分其他课程相比,本课程

程度

学习压力与负担

……

致性。

(3)数据挖掘过程。数据的挖掘过程是大数据技术的核心,根据数据挖掘的目标确定任务并选择合适的算法,如分类算法、聚类算法、关联规则等,同时要选择合适的模型和参数,以确保找到正确的规律。

(4)模式解释。经过初步的评估后,可能会存在无用的或者冗余的模式,如果结果不能满足要求,则应返回到前面的某些步骤进行反复提取,大数据处理的过程并不是简单的单向处理过程,而是一个数据反复交互的过程,只有经过数据的反复交互,最终的结果才能以可视化的形式表现出来。

4.3 数据管理制度化

大数据平台的建立非一朝一夕之功,要想将数据信息作为重要决策依据应用到学校的管理和教学中,则必须要对数据的收集、分析、应用与反馈等各个方面进行制度化、规范化的管理。评价指标的建立只是基础,大数据技术的发展也会日新月异,要想在信息化的时代与时俱进,就必须在信息化的发展中不断改革创新、不断发展完善。数据的制度化管理一方面要动员高校各个部门共同参与进来,充分明确各个部门应尽的职责,从而形成教学管理、教学评价数据的周期性循环过程。另一方面,要不断地对数据进行修正整理,既要检查收集数据的正确性与合理性,同时也要根据实际的要求或者实际教学中的变化更改数据类型。只有以这样制度化、规范化的管理方式进行后续的管理,才能真正保证基于大数据技术的教学质量评价体系不断发挥其作用。

参考文献:

[1] 高桂桢.大数据分析视角下的高校教学质量评价研究 [J].河南教育(高教),2019(2):38-41.

[2] 潘强.大数据分析在高职院校教学质量评价中的应用探究 [J].文化创新比较研究,2018,2(29):-65.

[3] 林秋莎.借助大数据优化教学评价和学情诊断 [J].中小学数字化教学,2018(2):38-40.

[4] 赵伟强,陈坤,卢雪萍.基于大数据分析的教学评价体系建立与实践——以绍兴文理学院为例 [J].绍兴文理学院学报(自然科学),2017,37(3):111-117.

作者简介:黎德森(1983.05-),男,汉族,广东佛山人,中学一级信息技术教师,毕业于华南师范大学,本科,研究方向:信息技术教学。

4.2 大数据技术处理数据

上述评价指标是收集数据的主要依据,上文中曾讲,基于大数据的教学质量评价体系应该拓宽思路,不仅仅要将评价数据纳入其中,还要将其他数据收录进来,如学生的个人兴趣、选课数据、奖惩情况、社会实践、担任职务等等,以实现对学生的全面培养。

收集到数据后便可以利用大数据技术对数据进行处理,目前应用较为成熟的数据挖掘过程主要分为四个步骤:(1)数据的采集与筛选。数据的采集过程中难免会产生不合规数据或者错误数据,这些数据并不是有效信息,对于数据挖掘也无任何益处,数据的筛选就是利用数据库的相关操作选取出有效数据。

(2)数据的预处理与变换。收集到的数据可能在量级以及存储方式等方面有所区别,要想对数据进行一致的处理,必须通过数据的预处理和变换来保证数据的完整性和一

(上接82页)键时重新启动游戏,需要在mainGame()方法中播放小恐龙跳跃音效代码的下面判断游戏结束的开关是否开启,如果开启,则重新调用mainGame()方法重新启动游戏。

标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库命名接口清晰、文档良好,很容易学习和使用。

参考文献:

[1] 邓亚君,杨刚,翁文斌,等.基于Python的网络聊天室设计 [J].电子技术与软件工程,2019(5):35-36.

[2] 蔡敏.Python语言的Web开发应用分析 [J].无线互联科技,2019,16(4):27-28.

[3] 耿颖.使用Python语言的GUI可视化编程设计 [J].单片机与嵌入式系统应用,2019,19(2):20-22+24.

作者简介:董彧先(1981-),男,汉族,山东聊城人,讲师,硕士研究生,研究方向:网络安全、嵌入式系统设计。

6 结 论

随着人工智能的发展,Python语言的应用变得越来越普遍。通过Python语言中的Pygame模块来设计小恐龙游戏,可以发现Python语言在开发游戏方面非常简便,相比其他语言用了更少的代码量完成了相同的功能。Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python

2019.685

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务