Python跨年烟花秀

举报
Want595 发表于 2024/01/06 17:03:28 2024/01/06
【摘要】 Python实现跨年烟花秀

跨年烟花.jpg

写在前面

今年跨年怎么过呢~博主用python的pygame实现了一场炫酷的烟花秀,一起来看看吧!

环境需求

  • python3.11.4及以上
  • PyCharm Community Edition 2023.2.5
  • pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)

PyGame入门

pygame是一个强大的Python库,用于游戏开发和多媒体应用程序的创建。它提供了许多简单易用的函数和方法,使得游戏开发变得简单而有趣。本文将介绍如何入门pygame,了解其基本概念和使用方法。

首先,确保已经安装了Python和pygame库。可以使用pip命令在命令行中安装pygame:pip install pygame。

创建一个新的Python文件,导入pygame库并初始化pygame。初始化包括初始化所有导入的模块,设置游戏窗口等。代码如下所示:

import pygame
pygame.init()

然后,创建一个游戏窗口。使用pygame.display.set_mode()函数来设置窗口大小和其他属性。代码如下所示:

window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))

接下来,设置游戏循环。游戏循环是一个无限循环,处理游戏的逻辑和事件。在游戏循环中,可以处理键盘和鼠标事件,并更新游戏的状态。代码如下所示:

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

最后,更新游戏显示并控制帧率。使用pygame.display.update()函数来更新显示,使得最新的游戏状态在窗口中可见。使用pygame.time.Clock()对象来控制帧率。代码如下所示:

FPS = 60
clock = pygame.time.Clock()

while running:
    # 游戏逻辑和事件处理

    # 游戏显示更新
    pygame.display.update()

    # 控制帧率
    clock.tick(FPS)

现在,可以在游戏循环中添加自己的游戏逻辑、事件处理和游戏显示更新的代码。例如,可以添加图像、声音、角色和碰撞检测等功能。

除了游戏循环外,还可以使用pygame库提供的其他函数和方法来实现更复杂的功能。例如,使用pygame.image.load()函数加载图像,使用pygame.mixer.Sound()函数加载声音,使用pygame.sprite.Sprite类创建角色,使用pygame.sprite.collide_rect()函数检测碰撞等。

总结一下,以上是一个简单的pygame入门指南。通过学习和实践,可以逐渐掌握更高级的游戏开发技巧和函数用法。祝愿你在pygame的世界中创造出属于自己的游戏作品!

跨年烟花秀 

程序设计

import pygame as pg
import random as ra
import math
pg.init()
pg.display.set_caption("🎇")
winScreen = pg.display.Info()
screenWidth = winScreen.current_w
screenHeight = winScreen.current_h
……完整代码见公众号Want595喔

程序分析

这段代码使用Pygame库实现了一个烟花效果。代码通过不断更新和绘制Firework对象和Particle对象来实现烟花的发射和爆炸效果。

Firework类表示一颗烟花,包括一个发射出的火花对象和多个爆炸产生的粒子对象。在update方法中,通过给火花施加重力使其向下移动,并绘制火花和火花的尾迹。当火花的y方向速度变为非负数时,表示火花已经发射完毕,此时设置爆炸状态为True,并调用explode方法生成爆炸的粒子对象。在explode方法中,根据设定的粒子数量范围,生成指定数量的粒子对象,并添加到粒子列表中。show方法用于绘制发射出的火花。

Particle类表示一个粒子,包括位置、速度、加速度等属性。在move方法中根据是否是火花来更新粒子的运动状态,火花会向上运动,而爆炸产生的粒子会减速。在绘制粒子时,使用圆形来表示粒子,根据粒子的属性绘制不同颜色和大小的圆。

Trail类表示烟花的尾迹,包括位置和大小等属性。在show方法中,使用圆形来绘制尾迹。

update函数用于更新和绘制所有的烟花对象,并根据烟花是否需要移除来删除已经爆炸的烟花。

fire函数是主函数,初始化Pygame窗口和其他参数,然后进入游戏循环。在循环中,绘制背景和显示文本,通过调用update函数更新烟花的状态和绘制。当点击关闭按钮时退出循环,结束游戏。

在if __name__ == "__main__"部分,调用fire函数开始运行烟花效果。

注意事项

如遇到问题"no module named pygame",请在终端输入"pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame",等待pygame库安装完成后再运行程序

写在后面

我是一只有趣的兔子,感谢你的喜欢!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。