Python飞机游戏报告

本文由用户“zqn82”分享发布 更新时间:2021-08-04 20:08:38 举报文档

以下为《Python飞机游戏报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

报告

这个飞机游戏采取的主要技术路线或方法系统开发环境介绍当前程序是以python为编程语言,主要功能实现依赖于pygame模块,主要用到surface对象之间的位置变化,再利用事件监听让程序运行起来。

游戏是通过移动飞机来射击敌机,通过键盘的向左向右控制飞机,飞机每秒会射出子弹,击中一辆敌机就会获得100分数,敌机会以每秒2个像素的速度向下移动,当敌机碰到飞机时就会终止游戏。

用import使用pygame模块,首先初始化pygame,退出游戏通过quit方法。由于原点 在 左上角 (0, 0) x轴水平方向向 右逐渐增加, y轴垂直方向向 下逐渐增加。所以通过背景图片的分辨率设置背景矩形的大小为800*600,然后创建游戏的主要窗口。然后通过while循环使得运行程序后不会即可退出。其次,在游戏中,能够看到的游戏元素大多都是图像。图像文件初始是保存在磁盘上的,如果需要使用,第一步 就需要 被加载到内存,要在屏幕上,看到某一个图像的内容,则要通过pygame.image.load() 加载图像的数据,使用游戏屏幕对象,调用 blit 方法 将图像绘制到指定位置,调用 pygame.display.update() 方法更新整个屏幕的显示,然后开始加载背景图片,并且将背景图片绘制在(0,0)位置,在最后一行使用pygame.display.update()来跟新背景图像。第二步就是绘制飞机图像加载文件创建英雄飞机将飞机绘制在屏幕的 (200, 500) 位置调用屏幕更新显示飞机图像。使用 display.set_mode() 创建的 screen 对象 是一个内存中的屏幕数据对象可以理解成是油画的画布creen.blit方法可以在画布上绘制很多 图像。display.update()会将画布的最终结果 绘制在屏幕上,这样可以 提高屏幕绘制效率,增加游戏的流畅度。跟电影的原理类似,游戏中的动画效果,本质上是快速的在屏幕上绘制 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 制精灵组,更新屏幕显示。难度系统,根据消灭的怪物的波数更改游戏的难度,为了简单起见,难度增加直接体现在外星人的行数和移动速度的增加,在实现的过程中,只需要增加一个hard参数,传递到外星人类里面,在设置行数和移动速度的时候根据该参数来设计就可以了。积分系统,根据消灭的怪物的个数来计算积分,难度的不同也会影响单个怪物的分数,只要在检测子弹和怪物的碰撞的时候,检测一共消灭了几个怪物,并根据难度来增加score即可,还要将该分数显示在右上角。这个实现需要增加一个额外的参数来表示游戏是否已经开始,按下按钮就是开始,游戏结束就是结束,根据该参数来决定是否开始创建怪物即可。现在的情况是我方飞机处于落后挨打的状态,敌强我弱,所以应该拿起武器进行反击! 接下来定义子弹子弹一次只发射一颗这里就是给玩家飞机初始化时出现在窗口的位置,那么我们知道,玩家飞机的位置在x轴上应该在中间位置,y轴上不能在最低下,下面要留下60像素的高度用于左部分显示全屏炸弹的剩余个数,右部分显示玩家还剩多少条生命,那么这里x轴就是游戏窗口的宽度减去这个飞机图像矩形对象的宽度再除以2,y轴就是用游戏窗口的高度减去矩形对象的高度再多减去60,然后把这两个值给,玩家飞机rect矩形对象的left,和top,其实这两个就是图片矩形对象左上角的坐标。当敌机碰撞到飞机时游戏结束,只要检测到子弹“左边缘”横坐标在敌机“左边缘”和“右边缘”之间且子弹“顶部”纵坐标在敌机“底部坐标之上”,或者子弹“右边缘”横坐标在敌机“左边缘”和“右边缘”之间且子弹“顶部”纵坐标在敌机“底部坐标之上”,则判定会和敌机发生碰撞。我们子弹和飞机都维护了一个矩形,rect(x, y, width, height), 其中x和y是矩形在窗口上的坐标,碰撞检测我们只需要循环遍历每一颗已经发射的子弹,也就是visible为True的子弹和每一个敌人飞机的矩形是否相交,如果相交,说明子弹击中了敌机,我们对应做行为就可以了。

[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《Python飞机游戏报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览