Skip to main content
 Web开发网 » 编程语言 » Python语言

Python游戏开发,pygame模块,Python实现FlappyBird小游戏

2021年11月27日6230百度已收录

往期回顾Python实现经典90坦克大战游戏

前言:本期我们将制作一个仿“FlappyBird”的小游戏。

让我们愉快地开始吧~

效果图

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第1张

环境搭建安装Python并添加到环境变量,pip安装需要的相关模块即可。

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第2张

原理介绍FlappyBird:

玩家通过空格键控制一只小鸟,使其跨越由各种不同长度水管所组成的障碍物,当小鸟碰撞到障碍物或跌至屏幕最底端时,游戏结束。

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第3张

逐步实现:Step1:定义精灵类

为了方便实现小鸟和水管之间碰撞的检测,我们先定义一些精灵类,包括:

① 小鸟类

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第4张

随着游戏时间的推移,小鸟应当具有更新自身位置的能力,即当玩家按下空格键时,小鸟向上跳跃,否则小鸟向下坠落。另外,为了使游戏场景更加真实,小鸟在向上跳跃或者向下坠落之前,应当先调整身体角度。具体代码实现如下:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第5张

② 管道类

管道分为管道体和管道头。管道头:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第6张

管道体:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第7张

可先简单定义如下:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第8张

显然,一个管道头和若干个管道体组成了一个管道障碍物,管道障碍物两两同列,两者之间留有一定的空间供小鸟穿过,就像这样:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第9张

因此,我们定义一个大的管道类,以便构建一个完整的管道障碍物,代码实现如下:

其中,更新管道的作用为通过管道的左移来实现小鸟不断右移的效果。

Step2:实现游戏主循环

先初始化,载入图片、音乐、字体等文件,并定义一些必要的常量:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第10张

现在就可以开始定义游戏主循环了!游戏主循环的逻辑十分简单,先显示游戏背景,然后根据玩家的操作更新小鸟位置,自动更新管道位置,并通过碰撞检测以及小鸟的纵坐标来判断游戏是否结束,若游戏结束,则显示游戏结束画面。当然你也需要根据玩家通过的管道数量来实时更新玩家当前的分数,这一步需写在最后,否则分数会被管道所遮盖,这显然是不合理的,具体实现如下:

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第11张

总结文章到这里就结束了,感谢你的观看,为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

需要我本篇的完整代码或者其他的收藏的一些Python编程干货可以私信我(转发此文私信发我“FlappyBird”)

Python游戏开发,pygame模块,Python实现FlappyBird小游戏  Python游戏开发 第12张

评论列表暂无评论
发表评论
微信