运行图片
代码
import pygame
import random
# 初始化Pygame
pygame.init()
# 创建窗口
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Christmas Tree')
# 定义颜色
GREEN = (34, 139, 34)
RED = (255, 0, 0)
WHITE = (255, 255, 255)
# 绘制圣诞树
def draw_christmas_tree():
triangle_height = 300
triangle_width = 200
# 绘制树干
pygame.draw.rect(screen, pygame.Color('brown'), (width // 2 - 25, height - 200, 50, 200))
# 绘制树冠
for i in range(triangle_height):
pygame.draw.polygon(screen, GREEN, [(width // 2 - triangle_width // 2 - i, height - 50 - i),
(width // 2 + triangle_width // 2 + i, height - 50 - i),
(width // 2, height - 50 - i - triangle_height)])
# 随机生成雪花
def generate_snowflakes():
snowflakes = []
for _ in range(100):
x = random.randint(0, width)
y = random.randint(0, height)
size = random.randint(1, 5)
snowflakes.append((x, y, size))
return snowflakes
# 绘制雪花
def draw_snowflakes(snowflakes):
for flake in snowflakes:
pygame.draw.circle(screen, WHITE, (flake[0], flake[1]), flake[2])
# 绘制圣诞老人
def draw_santa():
santa_image = pygame.Surface((120, 120), pygame.SRCALPHA)
# 头部和身体
pygame.draw.circle(santa_image, RED, (60, 60), 50)
pygame.draw.polygon(santa_image, RED, [(0, 60), (120, 60), (60, 120)])
# 眼睛和嘴巴
pygame.draw.circle(santa_image, WHITE, (45, 45), 10)
pygame.draw.circle(santa_image, WHITE, (75, 45), 10)
pygame.draw.arc(santa_image, WHITE, (30, 45, 60, 60), 3.14 / 2, 3 * 3.14 / 2, 3)
# 鼻子
pygame.draw.polygon(santa_image, pygame.Color('orange'), [(60, 50), (70, 70), (50, 70)])
# 胡须
pygame.draw.line(santa_image, WHITE, (55, 85), (20, 90), 2)
pygame.draw.line(santa_image, WHITE, (65, 85), (100, 90), 2)
# 帽子
pygame.draw.polygon(santa_image, RED, [(30, 0), (90, 0), (60, 60)])
screen.blit(santa_image, (width // 2 - 60, height - 200 - 120))
# 游戏主循环
running = True
clock = pygame.time.Clock()
snowflakes = generate_snowflakes()
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((0, 0, 0)) # 清空屏幕
draw_christmas_tree()
draw_santa()
draw_snowflakes(snowflakes)
# 雪花下落
for i in range(len(snowflakes)):
x, y, size = snowflakes[i]
snowflakes[i] = (x, y + size, size)
if y + size > height:
snowflakes[i] = (random.randint(0, width), 0, size)
pygame.display.flip() # 刷新屏幕
clock.tick(30) # 控制帧率
# 退出游戏
pygame.quit()
原文地址:https://blog.csdn.net/wsrzsfgst/article/details/134767497
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_37918.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。