python打气球小游戏(一)

欢迎加入我们卧虎藏龙的python讨论qq群:729683466

导  语

上期

给大家讲了一个《推箱子》游戏

这是是正宗的pygame模块开发的

这一期

给大家介绍一个非常好玩的模块turtle

这是一个专门画画的模块

但是

用来开发简单的小游戏

也是很靠谱的哦!!

我们就介绍一下今天的《打气球》

另外

如果大家有什么小游戏的想法

也可以在群里和我们讨论哦

代码及相关资源获取

1:关注“python趣味爱好者”公众号,回复“打气球 ”获取源代码

2:加入群聊:729683466。在群文件中下载源代码以及相关资料。

效果演示

ss

开发工具

python3.6.4

第三方库:turtle,random

往期精选

《推箱子》python小游戏(第二期)

《推箱子》python小游戏(第一期)

讲解部分

上次讲的《推箱子》游戏,我们用到的是pygame这个模块。这是专门用来开发游戏的第三方库。功能非常多。

不过,除此之外,我们还是可以用一些简单的模块做一些简单的轻量级游戏比如说。我们用来画画的模块turtle。就可以用来做一个简单的游戏。

那就是我们今天要讲的《打气球》

游戏规则如下:

在这个游戏界面中。不断有气球从界面底部,匀速上升。

气球是有一个圆圈和一个线段组成的,非常简单。

在气球上升的过程中,我们用鼠标点击气球,如果点击到了。那么这个气球就破裂了。

我们要做的就是不断的点击气球。

基本原理:

在这一期中,我们讲一讲这个游戏的基本原理。

首先我们要设置画布的大小,比较简单的方法是用下面这个函数

setup(420,420,0,0)

这个函数指的是用setup设置一个高度为420,宽度也是420的画布。

这个画布的开始坐标为(0,0)。

其中还要调用tap函数进入游戏代码。获取到鼠标按键位置。这就是打气球的关键步骤。

当然,这一期我们要讲的关键内容还是如何画一个气球。

我们用列表表示所有的气球。

balloons=[]   #气球队列

如果我们用随机数生成了一个气球,那么我们就在这个列表中添加这个气球。

反之,如果我们打破了一个气球,那么我们就在列表中删除这个气球。

其中的line函数作用就是设置画笔的基本参数,然后画一个气球。

def line(x,y,a,b,line_width=1,color_name="black"):   #默认气球线宽度为1,颜色为黑
    up()
    goto(x,y)
    down()
    color(color_name)
    width(line_width)
    goto(a,b)

然后,我们在draw函数中调用这个line函数。用for循环的方式将列表里面所有的气球全部画出来。

画完之后,我们将画笔提起来,以免污染画布。

然后,我们在更新一下画布。

最后,我们模拟气球上升。

balloons[-i][1]=balloons[-i][1]+1

这样设置的气球,每次上升一个单位。

这样,气球就能匀速上升了。

下期预告:

到了下一期,我们将给大家具体讲一讲怎么打气球。

作者|齐

编辑|齐

感谢大家观看

有钱的老板可打赏一下小编哦

扫码关注我们

QQ群:729683466

◰  

参考来源

代码作者:Vivinia_Vivinia

https://blog.csdn.net/hester_hester/article/details/105930211

### Python气球游戏实现教程 #### 1. 使用Pygame框架构建基础环境 为了开发打气球游戏,通常会使用`Pygame`库作为主要的游戏开发工具。它提供了丰富的功能用于处理图形、声音和输入事件[^2]。 ```python import pygame from random import randint # 初始化Pygame pygame.init() # 设置窗口大小和标题 screen_width, screen_height = 800, 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("打气球游戏") # 定义颜色常量 WHITE = (255, 255, 255) RED = (255, 0, 0) clock = pygame.time.Clock() ``` --- #### 2. 创建气球类 通过定义个`Balloon`类来管理游戏气球的行为和属性。每个气球都有自己的位置、速度以及碰撞检测逻辑[^4]。 ```python class Balloon: def __init__(self, x, y): self.image = pygame.image.load("balloon.png").convert_alpha() # 加载透明背景图片 self.rect = self.image.get_rect(center=(x, y)) self.speed = randint(3, 7) # 随机设定上升速度 def move(self): """让气球向上移动""" self.rect.y -= self.speed # 如果超出屏幕范围,则重置其位置 if self.rect.top < 0: self.reset_position() def reset_position(self): """随机重新设置气球的位置""" self.rect.x = randint(0, screen_width - self.rect.width) self.rect.y = screen_height + self.rect.height def draw(self, surface): """绘制气球到屏幕上""" surface.blit(self.image, self.rect.topleft) ``` --- #### 3. 添加玩家交互机制 允许玩家点击鼠标左键引爆目标区域内的气球,并记录得分情况。 ```python def check_collision(balloons, score): mouse_pos = pygame.mouse.get_pos() clicked_balloons = [] for balloon in balloons: if balloon.rect.collidepoint(mouse_pos): # 判断是否发生碰撞 clicked_balloons.append(balloon) score += 1 # 增加分数 return [b for b in balloons if b not in clicked_balloons], score ``` --- #### 4. 主循环控制程序流程 最后,在主循环中更新画面内容并响应用户的操作行为[^3]。 ```python running = True score = 0 balloons = [Balloon(randint(0, screen_width), randint(screen_height, screen_height * 2)) for _ in range(10)] while running: screen.fill(WHITE) # 背景填充白色 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: # 左键按下 balloons, score = check_collision(balloons, score) # 更新所有气球状态 for balloon in balloons: balloon.move() balloon.draw(screen) # 显示当前得分 font = pygame.font.Font(None, 36) text = font.render(f"Score: {score}", True, RED) screen.blit(text, (10, 10)) pygame.display.flip() # 刷新显示缓冲区 clock.tick(30) # 控制帧率 pygame.quit() ``` --- ### 总结 上述代码展示了如何利用Python与Pygame库快速搭建款简易版的打气球游戏。其中涵盖了基本的对象建模、物理模拟以及用户界面设计等内容[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值