用Python做款"打气球"游戏,10分钟上手!小白也能惊艳朋友圈
你敢信吗?只需10行核心代码,用Python的Pygame库就能做出一款能互动的"打气球"游戏!不用懂复杂算法,不用学专业引擎,今天这篇教程,连编程新手都能跟着做,做完直接发朋友圈炫耀——这可是你亲手写的游戏!
一、为啥选"打气球"?新手最易出成果的游戏!
比起贪吃蛇、俄罗斯方块,"打气球"游戏堪称新手福利:画面直观(气球飘、鼠标点)、逻辑简单(点中加分、超时扣分)、成就感强(10分钟就能玩)。更重要的是,它能帮你一次性掌握Pygame的核心技能:
o 如何加载图片、显示动态元素
o 如何捕捉鼠标点击(比键盘控制更直观)
o 如何做简单的碰撞检测(判断"点没点中气球")
o 如何设计计分规则(让游戏有爽感)
学会这个,再做其他游戏就是换汤不换药——先搞定"能玩起来",再追求"玩得爽"!
二、准备工作:3步搭好开发环境
1. 装Python:3分钟搞定
去Python官网(https://www.python.org/)下载最新版,安装时务必勾选"Add Python to PATH"(不然后续命令用不了)。装完按Win+R,输入python --version,弹出版本号就成功了。
2. 装Pygame:1行命令的事
打开电脑的"命令提示符"(Windows)或"终端"(Mac),输入:
pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
用国内镜像源,10秒就能装好。测试一下:输入python -m pygame.examples.aliens,弹出小飞船游戏窗口就OK。
3. 备素材:2张图搞定(附免费获取方式)
游戏需要2个素材:
o 气球图片(png格式,带透明背景,搜"气球 透明底",选100x100像素左右的)
o 背景图(可选,用纯色也行,推荐浅蓝色)
素材放哪里?新建一个文件夹"balloon_game",里面放:
o 你的Python代码文件(比如game.py)
o 气球图片(改名balloon.png)
o 背景图(改名bg.png,没有就跳过)
三、手把手写代码:边做边懂原理
第一步:初始化游戏窗口(5行代码出界面)
打开记事本(或VS Code),新建game.py,先写这段:
import pygame
import random # 后面让气球随机位置用
# 初始化Pygame
pygame.init()
# 创建窗口:宽800,高600
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("打气球小游戏 - 点爆得分!")
# 控制帧率(避免气球飞得太快)
clock = pygame.time.Clock()
运行试试:右键"用Python打开",会弹出一个空白窗口——这就是你的游戏画布!
第二步:加载气球和背景(让画面有东西看)
接着加代码,让气球显示出来:
# 加载素材(路径要对!和代码放同一文件夹)
balloon_img = pygame.image.load("balloon.png").convert_alpha() # 透明背景
# 调整气球大小(原图太大就缩小)
balloon_img = pygame.transform.scale(balloon_img, (80, 100))
# 背景用浅蓝色(没有图片就用纯色)
bg_color = (135, 206, 235) # 天空蓝
重点说明:convert_alpha()是保留图片透明部分的关键,不然气球周围会有白边;transform.scale()用来调整大小,数值根据你的图片改。
第三步:让气球动起来(随机位置+慢慢飘)
气球总在一个地方多无聊?让它每次出现位置随机,还能慢慢往上飘:
# 气球属性:位置、速度
balloon_x = random.randint(50, 750) # 左右范围:50到750(避免超出窗口)
balloon_y = 600 # 从底部出现
balloon_speed = 2 # 向上飘的速度
# 游戏主循环(核心中的核心!)
running = True
while running:
# 填充背景(每次循环都要画,不然会有残影)
screen.fill(bg_color)
# 气球移动:y坐标减小=向上飘
balloon_y -= balloon_speed
# 超出屏幕顶部就重置位置
if balloon_y < -100: # 负数是让气球完全消失后再出现
balloon_x = random.randint(50, 750)
balloon_y = 600
# 绘制气球
screen.blit(balloon_img, (balloon_x, balloon_y))
# 刷新画面
pygame.display.flip()
# 控制帧率:60帧/秒(数值越大越快)
clock.tick(60)
# 处理退出:点窗口叉号关闭游戏
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
现在运行代码,你会看到气球从底部往上飘,飞出屏幕后自动从新位置出现——动起来了!这一步已经超过80%的新手了!
第四步:加鼠标点击(点中气球加分)
最关键的互动来了:用鼠标点气球,点中就加分。核心是检测"鼠标点击位置"和"气球位置"是否重合:
# 新增:计分变量
score = 0
# 加载字体(显示分数用)
font = pygame.font.SysFont("SimHei", 30) # 用黑体,避免中文乱码
# 放在主循环里(替换原来的循环内容)
while running:
screen.fill(bg_color)
# 气球移动和重置(同上)
balloon_y -= balloon_speed
if balloon_y < -100:
balloon_x = random.randint(50, 750)
balloon_y = 600
score -= 5 # 没点中就扣分(增加紧迫感)
# 绘制气球
screen.blit(balloon_img, (balloon_x, balloon_y))
# 新增:处理鼠标点击
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 检测鼠标左键点击
if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
# 获取鼠标点击位置
mouse_x, mouse_y = pygame.mouse.get_pos()
# 检测是否点中气球(气球的矩形范围)
# 气球的x范围:balloon_x 到 balloon_x+100(宽)
# 气球的y范围:balloon_y 到 balloon_y+100(高)
if (balloon_x < mouse_x < balloon_x + 100
and balloon_y < mouse_y < balloon_y + 100):
score += 10 # 点中加10分
# 点中后立刻换个新气球
balloon_x = random.randint(50, 750)
balloon_y = 600
# 新增:显示分数
score_text = font.render(f"得分:{score}", True, (255, 0, 0)) # 红色文字
screen.blit(score_text, (30, 30)) # 显示在左上角
pygame.display.flip()
clock.tick(60)
现在点击气球试试!点中会加分,没点中气球飞出去会扣分——有游戏那味儿了!
第五步:加细节让游戏更爽(3个加分项)
1. 气球大小随机:每次出现的气球有大有小,增加难度
加一行:balloon_size = random.randint(80, 120),然后用transform.scale(balloon_img, (balloon_size, balloon_size+20))
2. 不同颜色气球:红气球+10分,蓝气球+20分
准备2张气球图,随机加载:if random.random() < 0.7: 加载红气球 else: 加载蓝气球
3. 加速机制:分数越高,气球飘得越快
加一行:balloon_speed = 2 + score//100(每得100分提速)
三、最终效果:能玩、能秀、能学
完整代码不到100行,运行后:
o 蓝色背景上,气球随机位置向上飘
o 鼠标点击气球,得分+10,立刻换新气球
o 没点中,气球飞出去得分-5
o 左上角实时显示分数
这时候你可以:
1. 截个屏发朋友圈:"用Python写了个小游戏,有人能超过我的200分吗?"
2. 给家人朋友玩,看他们手忙脚乱的样子
3. 自己改改参数:气球速度调快、加分变多,挑战更高分
四、新手必看:3个避坑指南
1. 图片路径错了:素材必须和代码放同一文件夹,名字不能错(比如balloon.png写成Balloon.png,Windows不区分,Mac会报错)。
2. 中文乱码:字体用SysFont("SimHei", 30),确保系统有黑体字体(基本都有)。
3. 气球不移动:检查主循环里的balloon_y -= balloon_speed是否写对,有没有缩进错误(Python靠缩进判断代码块)。
五、下一步:从"能玩"到"好玩"的升级方向
学会"打气球"后,这些玩法等你来解锁:
o 加音效:点中气球播放"砰"的声音(用pygame.mixer)
o 多气球:同时出现3个气球,点中不同颜色分数不同
o 倒计时:限时60秒,看能得多少分
o 排行榜:把最高分存到文件里,下次打开还能看到
记住:游戏开发的核心不是写多复杂的代码,而是让玩家觉得"有意思"。你今天做的"打气球",已经具备了所有好玩的基础——互动、反馈、挑战欲。
现在,打开你的编辑器,跟着敲一遍代码。10分钟后,你会拥有一个完全属于自己的游戏。这种成就感,可比刷短视频爽多了!
(完整代码已整理好,评论区扣"气球",直接发你可复制版本~)