Python跨年烟花秀
写在前面
今年跨年怎么过呢~博主用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库安装完成后再运行程序
写在后面
我是一只有趣的兔子,感谢你的喜欢!
- 点赞
- 收藏
- 关注作者
评论(0)