写一个火柴人爱心发射代码
时间: 2023-08-29 19:12:42 浏览: 102
以下是一个简单的火柴人爱心发射代码,使用 Python 和 Pygame 库:
```python
import pygame
import math
# 初始化 Pygame
pygame.init()
# 设置屏幕尺寸和标题
screen_width, screen_height = 640, 480
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("火柴人爱心发射")
# 火柴人的坐标、速度和加速度
x, y = screen_width // 2, screen_height - 50
vx, vy = 0, 0
ax, ay = 0, 0.1
# 爱心的坐标、速度和加速度
hx, hy = x, y
hvx, hvy = 0, -4
hax, hay = 0, 0.1
# 控制发射和退出的变量
fire = False
quit_game = False
# 加载火柴人和爱心的图片
matchstick_man_img = pygame.image.load("matchstick_man.png")
heart_img = pygame.image.load("heart.png")
# 游戏循环
while not quit_game:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit_game = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
fire = True
# 更新火柴人的位置和速度
if not fire:
ax = 0.1 if x < screen_width // 2 else -0.1
vx += ax
x += vx
vy += ay
y += vy
else:
x += vx
y += vy
# 更新爱心的位置和速度
if fire:
hax = math.sin(math.radians(30)) * 0.1
hvx += hax
hx += hvx
hvy += hay
hy += hvy
# 如果爱心移出屏幕,重新设置火柴人和爱心的位置和速度
if hy > screen_height:
fire = False
x, y = screen_width // 2, screen_height - 50
vx, vy = 0, 0
ax, ay = 0, 0.1
hx, hy = x, y
hvx, hvy = 0, -4
hax, hay = 0, 0.1
# 绘制屏幕
screen.fill((255, 255, 255))
screen.blit(matchstick_man_img, (x - 20, y - 50))
if fire:
screen.blit(heart_img, (hx - 16, hy - 16))
pygame.display.flip()
# 退出 Pygame
pygame.quit()
```
需要注意的是,这个代码中使用的图片需要自己准备,可以在网上搜索“火柴人”和“爱心”图片下载。此外,这个代码中的爱心发射角度是固定的,可以根据需要自行修改。
阅读全文