import pygame
import random
# 初始化 pygame
pygame.init()
# 设置屏幕尺寸和颜色
WIDTH, HEIGHT = 800, 600
BACKGROUND_COLOR = (0, 0, 255) # 雪地的蓝色
SNOW_COLOR = (255, 255, 255) # 雪人的颜色
FPS = 30
# 创建游戏窗口
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("堆雪人游戏")
# 创建游戏对象
snowman_size = 50
snow_block_size = 40
# 初始雪人和雪块位置
snowman_pos = [WIDTH // 2, HEIGHT - snowman_size]
snow_blocks = []
clock = pygame.time.Clock()
def move_snowman(keys):
if keys[pygame.K_LEFT]:
snowman_pos[0] -= 5
if keys[pygame.K_RIGHT]:
snowman_pos[0] += 5
# 防止雪人走出屏幕边界
snowman_pos[0] = max(0, min(snowman_pos[0], WIDTH - snowman_size))
def drop_snow_block():
x = random.randint(0, WIDTH - snow_block_size)
y = 0
snow_blocks.append([x, y])
def move_snow_blocks():
for block in snow_blocks:
block[1] += 5
def check_collision():
global snow_blocks
for block in snow_blocks[:]:
if (snowman_pos[0] < block[0] + snow_block_size and
snowman_pos[0] + snowman_size > block[0] and
snowman_pos[1] < block[1] + snow_block_size and
snowman_pos[1] + snowman_size > block[1]):
snow_blocks.remove(block)
return True
return False
def draw_objects():
screen.fill(BACKGROUND_COLOR)
pygame.draw.rect(screen, SNOW_COLOR, (*snowman_pos, snowman_size, snowman_size))
for block in snow_blocks:
pygame.draw.rect(screen, SNOW_COLOR, (*block, snow_block_size, snow_block_size))
pygame.display.flip()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
move_snowman(keys)
if random.randint(1, 30) == 1:
drop_snow_block()
move_snow_blocks()
if check_collision():
print("堆雪成功!")
draw_objects()
clock.tick(FPS)
pygame.quit()