pythono李峋同款悬浮爱心代码
时间: 2025-04-18 19:49:59 浏览: 21
### 使用 Pygame 实现悬浮爱心动画
为了创建一个类似于李峋同款的动态爱心粒子动画,可以利用 `pygame` 库来完成这一目标[^1]。下面是一个简单的例子,展示了如何通过 Python 和 Pygame 来制作这样的动画。
#### 安装依赖库
首先需要安装 pygame 库,可以通过 pip 命令轻松做到这一点:
```bash
pip install pygame
```
#### 编写代码
接下来是一份完整的 Python 脚本,用于绘制并展示一个漂浮着的心形图案,并让其内部充满随机移动的小颗粒形成一种梦幻般的效果:
```python
import sys, random, math
import pygame as pg
def main():
# 初始化Pygame模块以及设置窗口大小和标题栏文字
pg.init()
screen = pg.display.set_mode((800, 600))
pg.display.set_caption('Heart Animation')
clock = pg.time.Clock()
class Particle:
def __init__(self, pos):
self.x, self.y = pos
self.color = (random.randint(200, 255), 75, 89)
angle = math.radians(random.uniform(-30, 30))
speed = random.uniform(0.5, 2)
self.dx = math.cos(angle) * speed
self.dy = -(math.sin(angle) * speed)
def update(self):
if not (-100 < self.x < 900 and -100 < self.y < 700):
particles.remove(self)
return
self.x += self.dx
self.y += self.dy + 0.1 # 加速度模拟重力作用
self.draw(screen)
def draw(self, surf):
pg.draw.circle(surf, self.color, (int(self.x), int(self.y)), 4)
heart_points = []
for i in range(0, 360):
t = math.radians(i)
x = 16 * pow(math.sin(t), 3)
y = -(13 * math.cos(t) - 5 * math.cos(2*t) - 2 * math.cos(3*t) - math.cos(4*t))
point_x = int(x*20 + 400)
point_y = int(y*20 + 300)
heart_points.append([point_x, point_y])
particles = []
while True:
for event in pg.event.get():
if event.type == pg.QUIT or \
(event.type == pg.KEYDOWN and event.key == pg.K_ESCAPE):
pg.quit()
raise SystemExit
elif event.type == pg.MOUSEBUTTONDOWN:
mouse_pos = pg.mouse.get_pos()
for _ in range(20):
particles.append(Particle(mouse_pos))
screen.fill((255, 255, 255))
pg.draw.polygon(screen, (255, 100, 100), heart_points)
for particle in list(particles):
particle.update()
pg.display.flip()
clock.tick(60)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print("\nQuit by user.")
sys.exit(0)
```
此程序会打开一个新的图形化界面,在其中显示一颗红色心形轮廓图,并允许用户点击鼠标左键向画布上添加新的彩色圆点作为“爱意”的象征;这些新增加的对象将会按照一定的物理规律逐渐下落直至消失不见。
阅读全文
相关推荐

















