博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python入门小游戏代码_【Python】Python代码实现“FlappyBird”小游戏
阅读量:5898 次
发布时间:2019-06-19

本文共 731 字,大约阅读时间需要 2 分钟。

开发工具

Python版本:3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

相关文件

环境搭建

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

原理介绍

FlappyBird游戏简介:

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

逐步实现:

Step1:定义精灵类

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

① 小鸟类

d4bf21f00cf5cebc8614c452375de4d6.png

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

ed0e1bc8b3c0723e371514fb1d0ddf41.png

② 管道类

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

管道体:

可先简单定义如下:

b546ecc71852f4880eab205a6e5d11fd.png

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

0d3f11ff80744600f9f6b0beb96ddd69.png

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

036ef76db55c7d4cc3abe0845d451b1b.png

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

Step2:实现游戏主循环

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

03cb51db2847074ff5081ff45b9ec824.png

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

1b9f1273cb432f18d74de8b9ac48554a.png

All Done!

转载地址:http://trqsx.baihongyu.com/

你可能感兴趣的文章
从哪跌倒从哪爬起,千里之行始于足下
查看>>
四维偏序
查看>>
深入理解Java虚拟机
查看>>
oracle12c 可视化安装(桌面类)
查看>>
《黄昏清兵卫》中学到的工作态度
查看>>
构建之法阅读笔记04
查看>>
poj1580
查看>>
Codeforces Round #293 (Div. 2)
查看>>
洛谷4578 & LOJ2520:[FJOI2018]所罗门王的宝藏——题解
查看>>
BZOJ4589:Hard Nim——题解
查看>>
Netty 长连接服务
查看>>
extjs最普通的grid
查看>>
提单号提示
查看>>
5.1 零成本控制
查看>>
读取txt文件,并用其他格式显示
查看>>
zabbix 3.2.7 (源码包)安装部署
查看>>
ubuntu16 升级后找不到 eth0 网卡 的解决方法
查看>>
看懂此文,不再困惑于 JS 中的事件设计
查看>>
vsCode 快捷键、插件
查看>>
IMapDocument interface
查看>>