经慎重考虑
为酬报广大读者的关注
小编决定做一系列python小游戏的内容
以回报大家的关注

第一弹!
相信手机FlappyBird小游戏大家都玩过吧
啥?没玩过?
诺~就是这个游戏啦

第一期就跟大家分享一下
python简版FlappyBird游戏

配置环境
pygame
python3.6/3.7
安装方法
小编用的anaconda和spyder编译
但是在anaconda里并没有找到pygame这个包
所以介绍另一个安装pygame的方法:
1.打开prompt命令终端
2.输入conda install pygame
如果显示没有可用的package
那么输入神秘代码
anaconda search -t conda pygame选择你要安装的版本输入
conda install --channel https://conda.anaconda.org/加版本名称激动人心的代码时间

首先要有只鸟(定义一个brid类)
# Bird类class Bird(pygame.sprite.Sprite):def __init__(self, HEIGHT, WIDTH):pygame.sprite.Sprite.__init__(self)# 基准self.ori_bird = pygame.image.load("./resources/images/bird.png")# 显示用self.rotated_bird = pygame.image.load("./resources/images/bird.png")self.rect = self.rotated_bird.get_rect()# 游戏界面宽高self.HEIGHT = HEIGHTself.WIDTH = WIDTH# 角度self.angle = 0self.max_angle = 15# 速度self.angle_speed = 300self.down_speed = 300self.jump_speed = 150# 当前跳跃的高度self.cur_jump_height = 0# 当前跳跃高度到达该阈值时小鸟完成一次跳跃self.jump_height_thresh = 8# 是否跳跃self.is_jump = False# 位置信息self.x = 150self.y = (self.HEIGHT - self.ori_bird.get_height()) / 2self.set_bird()
这个鸟类里定义了一些基本界面属性
以及确定鸟的位置和判断鸟是否死亡
当玩家按下空格键时,小鸟向上跳跃
否则,小鸟就会下坠
管道类,也就是障碍物
class Pipe():def __init__(self, HEIGHT, WIDTH):self.HEIGHT = HEIGHTself.WIDTH = WIDTHself.max_pipe_body = (self.HEIGHT - 2 * pipeHead().height) // pipeBody().heightself.interspace = 8self.n_up_pipe_body = random.randint(0, self.max_pipe_body-self.interspace)self.n_down_pipe_body = self.max_pipe_body - self.interspace - self.n_up_pipe_bodyself.x = 600self.speed = 100self.add_score = Falseself.construct_pipe()
管道包含管道头和管道体两部分
一个管道头和若干管道体组成一个障碍
小鸟需要不断跳跃以穿过障碍物
通过不断更新管道位置
来达到小鸟不断前进的效果
游戏的主体部分就比较简单了
import Birdimport Pipeimport pygamefrom pygame.locals import *# 定义一些常量= 640, 480# 主函数def main():# 初始化pygame.init()screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32): Charles的皮卡丘')# 载入图片background_img = pygame.image.load("./resources/images/background.png")gameover_img = pygame.image.load("./resources/images/gameover.png")# 载入音乐jump_sound = pygame.mixer.Sound("./resources/audios/安卓/jump.wav")jump_sound.set_volume(6)pygame.mixer.music.load('./resources/audios/安卓/moonlight.wav')0.0)pygame.mixer.music.set_volume(12)# 载入字体font = pygame.font.Font("./resources/fonts/simkai.ttf", 24)# 时钟clock = pygame.time.Clock()# 小鸟bird = Bird.Bird(HEIGHT, WIDTH)# 管道pipes = []# 时间time0 = 0time_interval = 2# 分数SCORE = 0running = True
先显示游戏布景
然后根据玩家的操作更新小鸟位置
自动更新管道位置
并通过碰撞检测以及小鸟的纵坐标
来判断游戏是否结束
最终计算管道数量显示玩家分数
最终效果:

是不是很有意思!
走过路过不要错过
如果觉得本文对您有所帮忙
记得点一下右下角的"好看"!
也不枉小编中秋假期肝到吐血

代码获取请移步留言区
