Python小游戏(一)—FlappyBird

来源:互联网 编辑:wan玩得好手游小编更新:2024-10-31 19:05:29 人气:

经慎重考虑

为酬报广大读者的关注

小编决定做一系列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 = HEIGHT    self.WIDTH = WIDTH    # 角度    self.angle = 0    self.max_angle = 15    # 速度    self.angle_speed = 300    self.down_speed = 300    self.jump_speed = 150    # 当前跳跃的高度    self.cur_jump_height = 0    # 当前跳跃高度到达该阈值时小鸟完成一次跳跃    self.jump_height_thresh = 8    # 是否跳跃    self.is_jump = False    # 位置信息    self.x = 150    self.y = (self.HEIGHT - self.ori_bird.get_height()) / 2    self.set_bird()

这个鸟类里定义了一些基本界面属性

以及确定鸟的位置和判断鸟是否死亡

当玩家按下空格键时,小鸟向上跳跃

否则,小鸟就会下坠



管道类,也就是障碍物

# 管道类    class Pipe():    def __init__(self, HEIGHT, WIDTH):    # 游戏界面宽高    self.HEIGHT = HEIGHT    self.WIDTH = WIDTH    # 管道体最多可以放几个    self.max_pipe_body = (self.HEIGHT - 2 * pipeHead().height) // pipeBody().height    # 空隙(供小鸟穿过用,以pipeBody().height为单位长度)    self.interspace = 8    # 上方管道体    self.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_body    # 位置    self.x = 600    # 速度(即小鸟前进速度)    self.speed = 100    # 小鸟通过该Pipe后变为True,防止重复加分    self.add_score = False    self.construct_pipe()    # 用管道体和管道头构建管道    

管道包含管道头和管道体两部分

一个管道头和若干管道体组成一个障碍

小鸟需要不断跳跃以穿过障碍物


通过不断更新管道位置

来达到小鸟不断前进的效果


游戏的主体部分就比较简单了

import Birdimport Pipeimport pygamefrom pygame.locals import *# 定义一些常量WIDTH, HEIGHT = 640, 480# 主函数def main():  # 初始化  pygame.init()  screen = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32)  pygame.display.set_caption('FlappyBird-公众号: 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')  pygame.mixer.music.play(-1, 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 = 0  time_interval = 2  # 分数  SCORE = 0  running = True


先显示游戏布景

然后根据玩家的操作更新小鸟位置

自动更新管道位置

并通过碰撞检测以及小鸟的纵坐标

来判断游戏是否结束

最终计算管道数量显示玩家分数


最终效果:



是不是很有意思!

走过路过不要错过

如果觉得本文对您有所帮忙

记得点一下右下角的"好看"!

也不枉小编中秋假期肝到吐血




代码获取请移步留言区




欢迎玩家到【wan玩得好手游】查看最新变态版手游攻略,只需要在百度输入【wan玩得好手游】就可以浏览最新上线送满vip的变态手游攻略了,更多有关BT手游的攻略和资讯,敬请关注玩得好手游!

更多...

热门推荐

更多...

相关文章