python动态圣诞下雪图

运行图片

在这里插入图片描述

代码

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 = 300triangle_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 = Falsescreen.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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209064.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

彻底删除VsCode配置和安装过的插件与缓存

前言 当你准备对 Visual Studio Code(VSCode)进行重新安装时,可能遇到一个常见问题:重新安装后,新的安装似乎仍然保留了旧的配置信息,这可能会导致一些麻烦。这种情况通常是由于卸载不彻底所致&#xff0c…

视图层与模板层

视图层 1 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是…

android studio安装SDK时无法勾选

这两天帮助学妹安装android studio安装SDK时无法勾选,记录一下最终解决办法。头大。 核心 360 问题 网上所有方法都尝试了包括挂梯子,改hosts,盘符权限等等。 最终解决下载360 使用这两个,DNS注意要用8.8.8.8的 成功解决

C语言——指针(三)

📝前言: 上篇文章C语言——指针(二)中对:指针的运算和指针变量类型对指针使用的影响开展了进一步的探讨,这篇文章我们继续学习一下指针与一维数组之间的关系: 1,对数组名的理解 2&am…

Go语言 值传递

官方说法,Go中只有值传递,没有引用传递 而Go语言中的一些让你觉得它是引用传递的原因,是因为Go语言有值类型和引用类型,但是它们都是值传递。 值类型 有int、float、bool、string、array、sturct等 引用类型有slice&#xff0c…

Python笔记1.2(with open() as file和open()、logging、os、shutil、glob、decode和encode)

Python笔记1.1(字符串日期转换、argparse、sys、overwrite、eval、json.dumpsloads、os.system(cmd)、zfill、endswith、深浅拷贝) Python笔记2(函数参数、面向对象、装饰器、高级函数、捕获异常、dir) Python笔记1.2 13、with …

PyLMKit(3):基于角色扮演的应用案例

角色扮演应用案例RolePlay 0.项目信息 日期: 2023-12-2作者:小知课题: 通过设置角色模板并结合在线搜索、记忆和知识库功能,实现典型的对话应用功能。这个功能是大模型应用的基础功能,在后续其它RAG等功能中都会用到这个功能。功…

Linux的基本指令(3)

目录 制作小文件&查看 nano指令 cat指令 tac指令 制作大文件&查看 一切皆文件 echo指令 > 输出重定向 以写"w"的形式打开文件 以追加"a"的形式打开文件 cat指令 < 输入重定向 创建big.txt more指令 less指令&#xff08;推…

Docker—更新应用程序

在本部分中&#xff0c;你将更新应用程序和映像。您还将了解如何停止和移除容器。 一、更新源代码 在以下步骤中&#xff0c;当您没有任何待办事项列表项时&#xff0c;您将把“空文本”更改为“您还没有待办事项&#xff01;在上面添加一个&#xff01;” 1、在src/static/…

HTML5 的全局属性 hidden 和 display:none 的关系

目录 1&#xff0c;hidden 和 display:none 的关系2&#xff0c;其他隐藏元素的方式2.1&#xff0c;语意上的隐藏2.2&#xff0c;视觉上的隐藏 1&#xff0c;hidden 和 display:none 的关系 hidden - MDN 参考 一句话总结&#xff1a;hidden 是HTML5 新增的全局布尔属性&…

数据挖掘之时间序列分析

一、 概念 时间序列&#xff08;Time Series&#xff09; 时间序列是指同一统计指标的数值按其发生的时间先后顺序排列而成的数列&#xff08;是均匀时间间隔上的观测值序列&#xff09;。 时间序列分析的主要目的是根据已有的历史数据对未来进行预测。 时间序列分析主要包…

Java数据结构之《构造哈夫曼树》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等(偏难理解)的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题…

unity学习笔记17

一、动画组件 Animation Animation组件是一种更传统的动画系统&#xff0c;它使用关键帧动画。你可以通过手动录制物体在时间轴上的变换来创建动画。 一些重要的属性&#xff1a; 1. 动画&#xff08;Animation&#xff09;&#xff1a; 类型&#xff1a; Animation组件允许…

七、Lua字符串

文章目录 一、字符串&#xff08;一&#xff09;单引号间的一串字符&#xff08;二&#xff09;local str "Hello, "&#xff08;三&#xff09;[[ 与 ]] 间的一串字符&#xff08;四&#xff09;例子 二、字符串长度计算&#xff08;一&#xff09;string.len&…

2023年第十二届数学建模国际赛小美赛B题工业表面缺陷检测求解分析

2023年第十二届数学建模国际赛小美赛 B题 工业表面缺陷检测 原题再现&#xff1a; 金属或塑料制品的表面缺陷不仅影响产品的外观&#xff0c;还可能对产品的性能或耐久性造成严重损害。自动表面异常检测已经成为一个有趣而有前景的研究领域&#xff0c;对视觉检测的应用领域有…

TimiGP细胞互作算法

介绍&#xff1a; 通过推断细胞间相互作用和免疫细胞预后价值来研究时间的计算方法。我们的方法将存活统计数据与批量转录组学图谱相结合&#xff0c;以构建免疫细胞-细胞相互作用网络&#xff0c;其中边缘&#xff08;例如&#xff0c;X → Y&#xff09;表明高 X/Y 比值与良…

数据结构之堆排序以及Top-k问题详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 数据结构初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力 目录 1.前言 2.堆排序 2.1降序排序 2.2时间复杂…

C++ 抽象类和接口 详解

目录 0 引言1 抽象类2 接口2.1 Java与C接口的区别 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;C专栏&#x1f4a5; 标题&#xff1a;C 抽象类和接口 详解❣️ 寄语&#xff1a;书到用时方恨少&#xff0c;事非经过不知难&#xff01;&#x1f…

Python的模块与库,及if __name__ == ‘__main__语句【侯小啾python领航班系列(二十四)】

Python的模块与库,及if name == __main__语句【侯小啾python领航班系列(二十四)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

【拓展】Loguru:更为优雅、简洁的Python 日志管理模块

目录 一、简单介绍 二、安装与简单使用 ​三、常见用法 3.1 显示格式 3.2 写入文件 3.3 json日志 3.4 日志绕接 3.5 并发安全 四、高级用法 4.1 接管标准日志logging 4.2 输出日志到网络服务器 4.2.1 自定义日志服务器 ​4.2.2 第三方库日志服务器 4.3 与pytest结…