• Python
  • Python-pygame第九课【小鸟飞飞】

  • @ 2024-5-18 19:05:26

1 条评论

  • @ 2024-5-18 20:38:24
    import pygame as pg
    import sys,random
    
    pg.init() #初始化
    pg.display.set_caption("飞翔的小鸟")#设置标题
    width,height = 700,500
    win = pg.display.set_mode((width,height))
    
    bg = pg.image.load("./img/bg_day.png").convert() #导入背景图片
    bg = pg.transform.smoothscale(bg,(width,height)) # 设置背景图片的尺寸成窗口大小
    font36 = pg.font.SysFont("楷书",36) # 设置游戏内文字的字体和大小
    clock = pg.time.Clock() # 开启时钟设置
    running = False # 设置监控变量,默认游戏没有运行
    high_score = current_score = 0 # 最高分和当前游戏得分两个变量初始化为0
    msg = font36.render("按空格开始游戏",1,(0,0,0))
    
    bird_images = [] #定义用来储存小鸟图片的列表
    for i in range(3):
        img = pg.image.load(f"./img/bird0_{i}.png").convert_alpha()
        bird_images.append(img)
    
    class Bird(pg.sprite.Sprite):
        def __init__(self,images):
            pg.sprite.Sprite.__init__(self)
            self.images = images
            self.image = images[0]
            self.rect = self.image.get_rect() # 尺寸设置
            self.rect.topleft = 150,300 # 位置设置
            self.speed = 0 # 速度设置
            self.frame = 0
        def update(self):
            self.speed+= 0.5
            self.rect.y += self.speed
            self.frame += 1
            if self.frame>2:
                self.frame=0
            self.image = self.images[self.frame]
    bird = Bird(bird_images)
    while  True :
        win.blit(bg,(0,0))
        for event in pg.event.get():
            if event.type == pg.QUIT:
                pg.quit()
                sys.exit()
            if event.type == pg.KEYDOWN and event.key == pg.K_SPACE:
                running = True
                bird = Bird(bird_images)
            else:
                bird.speed = -8
        
        if running:
            bird.update()
            win.blit(bird.image,bird.rect)
        else :
            win.blit(msg,(200,200))
        clock.tick(60)
        pg.display.flip()
    
    
    • 1