教你用Python实现经典游戏《泡泡龙》

《泡泡龙》于1986年发布,看起来与当时街机上的任何其他游戏都不一样。这是一款合作游戏,由大藤光二(Fukio Mitsuji)设计,由两名玩家控制一对龙Bub和Bob,并吹泡泡诱捕敌人,然后将其击破。这使得敌方内部受到攻击,并释放了额外的奖励物品,可以获得额外的积分。与当时的各种射击、驾驶和格斗游戏不同,《泡泡龙》是一款具有广泛吸引力的卡通类游戏;Mitsuji在后来的采访中说,他希望这项游戏能让情侣们喜欢。也许这就是为什么泡泡龙在Taito大受欢迎的部分原因,它仍然是20世纪80年代最受欢迎和喜爱的游戏之一。

教你用Python实现经典游戏《泡泡龙》

我们将使用Pygame Zero制作一款泡泡龙游戏。在本示例中,我们将集中讨论游戏的气泡机制,看看如何发射它们,推动它们,并让它们在关卡上浮动时将其弹出。

首先,我们需要一套平台让我们的小龙在上面奔跑。在这个例子中,我们将保持简单,设置一个墙的边界和三层平台,我们可以用一个简单的嵌套循环来定义。每个平台块都是Actor,在我们开始主程序之前,我们将其放入一个列表中。

我们的draw()函数非常简单,先是绘制背景,然后是平台、气泡,最后是小龙Bub。要移动Bub,我们可以在update()函数中检测方向键。我们在三个框架中循环,让他沿着平台行走,然后对他施加一些重力,这样如果他从平台末端走出来,他就会下降到下一个高度。

为了让Bub跳跃,我们使用on_key_down()函数并测试他是否在地面上,如果是,则将Bub 的Actor属性”跳跃”设置为60,这将引发60帧的向上运动——在重力检查再次开始时,Bub将开始下降。

现在来看泡泡的实现。我们检测到空格键被按下,创建一个新的气泡,并将其添加到列表中。首先,它将沿着Bub所面对的方向水平飞行。我们可以通过新泡沫的状态属性来检查它已经走了多远。在状态属性达到零后,我们停止气泡水平移动,并使用漂移X和漂移属性使其上升。我们可以随机改变这些性质,使气泡的方向更加不确定。我们还可以反转属性,使气泡从侧壁和顶壁反弹。我们检查每一帧的所有气泡,以确保它们不会与任何其他气泡碰撞。我们还要检查Bub和任何气泡之间的碰撞。如果他撞到了泡泡,我们希望他推动泡泡前进,但是如果他跳起来用他的尖刺击中泡泡,泡泡就会破裂。泡泡上还有一个计时器属性,这意味着过一段时间泡泡会自行破裂。这就是泡泡的基础——你可能想添加一些怪物和好东西供Bub收集,或者让平台更复杂。这个就留给你自己去实现。

教你用Python实现经典游戏《泡泡龙》

源代码下载地址:Wireframe-56/bubble-bobble-source-code at main · Wireframe-Magazine/Wireframe-56 (github.com)

要运行调试请先安装Pygame Zero。

该框架是一个基于Pygame的游戏编程框架。它可以更容易地编辑游戏,无需模板、不用编写事件循环,也无需学习复杂的Pygame API,而且支持树莓派。

安装:
pip install pgzero

PS:若要全面系统学习Pygame Zero可以参考《趣学Python游戏编程》一书,该书通过十个经典游戏案例,深入浅出地介绍了游戏编程的基本原理,以及Pygame Zero的具体使用方法。相信学完这本书后你也能开发出如此精彩的小游戏。

教你用Python实现经典游戏《泡泡龙》

Original: https://blog.csdn.net/qianer/article/details/124900441
Author: qianer
Title: 教你用Python实现经典游戏《泡泡龙》

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/783558/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球