当前位置:首页>python>Python版经典小游戏——愤怒的小鸟(附源码)

Python版经典小游戏——愤怒的小鸟(附源码)

  • 2026-09-02 15:37:54
Python版经典小游戏——愤怒的小鸟(附源码)
在Python编程领域,游戏开发是一项有趣的实践,可以让学习者更好地理解和掌握编程概念。"Python版经典小游戏愤怒的小鸟源代码"就是一个很好的实例。
效果图
项目代码
1、导入模块
import pygame  # 导入pygame游戏开发库import sys  # 导入系统模块,用于退出程序from pygame.locals import *  # 导入pygame的常量from random import randint  # 导入随机数生成函数
2、初始化游戏和音频
pygame.init()  # 初始化pygame所有模块pygame.mixer.init()  # 初始化音频混合器pygame.mixer.music.load('背景音乐.mp3')  # 加载背景音乐文件pygame.mixer.music.set_volume(0.2)  # 设置背景音乐音量(20%)pygame.mixer.music.play(loops=-1)  # 循环播放背景音乐(-1表示无限循环)
3、设置游戏背景
bg = pygame.image.load('愤怒的小鸟背景图2.jpg')  # 加载背景图片bg_position = bg.get_rect()  # 获取背景图片的矩形位置信息
4、设置游戏窗口
size = width, height = 1000, 570  # 设置窗口宽度和高度screen = pygame.display.set_mode(size)  # 创建游戏窗口pygame.display.set_caption('愤怒的小鸟!')  # 设置窗口标题
5、主函数定义
def main():  # 定义游戏主函数
6、小鸟类定义
    class Bird(pygame.sprite.Sprite):  # 定义小鸟类,继承自Sprite类        def __init__(self):  # 小鸟初始化方法            pygame.sprite.Sprite.__init__(self)  # 调用父类初始化            position=100,100  # 设置初始位置            self.image=pygame.image.load('愤怒的小鸟里的小鸟.png')  # 加载小鸟图片            self.rect=self.image.get_rect()  # 获取小鸟的矩形区域            self.rect.center=position  # 设置小鸟初始位置为中心点        # 小鸟移动方法定义        def move_left(self):  # 向左移动            self.speed=[-5,0]  # 设置移动速度(左移5像素)            if self.rect.left<=0:  # 如果到达左边界                self.rect.left=0  # 固定在边界            else:                self.rect=self.rect.move(self.speed)  # 否则正常移动        def move_right(self):  # 向右移动            self.speed=[5,0]  # 设置移动速度(右移5像素)            if self.rect.right>=1000:  # 如果到达右边界                self.rect.right=1000  # 固定在边界            else:                self.rect=self.rect.move(self.speed)  # 否则正常移动        def move_up(self):  # 向上移动            self.speed=[0,-5]  # 设置移动速度(上移5像素)            if self.rect.top<=0:  # 如果到达上边界                self.rect.top=0  # 固定在边界            else:                self.rect=self.rect.move(self.speed)  # 否则正常移动        def move_down(self):  # 向下移动            self.speed=[0,5]  # 设置移动速度(下移5像素)            if self.rect.bottom>=570:  # 如果到达下边界                self.rect.bottom=570  # 固定在边界            else:                self.rect=self.rect.move(self.speed)  # 否则正常移动
7、小猪类定义
    class Pig(pygame.sprite.Sprite):  # 定义小猪类,继承自Sprite类        def __init__(self):  # 小猪初始化方法            pygame.sprite.Sprite.__init__(self)  # 调用父类初始化            y=randint(0,570)  # 随机生成y坐标            position=[1000,y]  # 设置初始位置(屏幕右侧随机y位置)            self.image=pygame.image.load('愤怒的小鸟里的小猪.png')  # 加载小猪图片            self.rect=self.image.get_rect()  # 获取小猪的矩形区域            self.rect.center=position  # 设置小猪初始位置            self.speed=[-4,0]  # 设置小猪移动速度(向左移动4像素)        def move(self):  # 小猪移动方法            self.rect=self.rect.move(self.speed)  # 按照设定速度移动小猪
8、游戏主循环初始化
    bird=Bird()  # 创建小鸟实例    i=0  # 计数器初始化    group=pygame.sprite.Group()  # 创建精灵组,用于管理小猪    state=True  # 游戏状态标志(True表示游戏运行中)
…… …… ……(完整代码,音频,图片等看文末获取)
16、绘制游戏结束画面
        img_src_pos = img_src.get_rect().center = 100, 185  # 设置按钮位置        screen.blit(bg_go, bg_go_pos)  # 绘制游戏结束背景        screen.blit(img_src,img_src_pos)  # 绘制重玩按钮        pygame.display.flip()  # 更新显示
17、启动游戏
main()  # 调用主函数,启动游戏

附录:更多学习资料

python课程400集,2026最新版来啦!!!从零基础开始,全面讲解Python基础,与一般教程不同,该教程增加了手写数据结构和算法、手写神经网络项目。同时加入AI工具编程,让零基础学员在学习Python时就开始接触高深的底层知识、神经网络底层实现的知识。最终达到达可以手写神经网络的境界。

本套视频一共400集,本套视频共分4季:

内容共分26章,讲解了Python基础的方方面面,可以作为Python学习者的“宝典”。同时,穿插了3个大型实战项目:

1. 坦克大战游戏。    采用游戏开发的方式,寓教于乐,快乐中掌握Python基础。

2. 手写算法和数据结构。    算法和数据结构是很多大公司面试的不二选择,我们这里讲解内容的同时,手把手带你实现一个个底层算法,将内功练扎实。

3.手写神经网络。   Python是人工智能的第一语言。我们创造性的在基础课程中就加入了如何编写一个自己的神经网络,为踏入神经网络的大门打下“坚实基础”。

按这个步骤走,你会发现编程真的没那么难~

还有Python电子书,Python练习题,Python练手项目,Python漫画书,Python动画版教程,面试题等等海量学习资料

领取方式:

1、点赞+在看  
2、后台回复关键词:学习

最新文章

随机文章