本文介绍: 使用Python的pygame库来实现冬天下雪的效果
使用Python的pygame库实现下雪的效果
关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520
先给出效果图:
源码如下:
import pygame
import random
# 初始化pygame
pygame.init()
# 设置屏幕尺寸
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
# 设置雪花属性
snowflakes = []
for i in range(50):
x = random.randrange(0, width)
y = random.randrange(0, height)
speed = random.uniform(1, 3)
size = random.randint(3, 6) # 雪花大小参数
snowflakes.append([x, y, speed, size])
# 循环直到用户关闭窗口
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 填充屏幕颜色
screen.fill((200, 200, 200)) # (0, 0, 0)黑色;(200, 200, 200)阴天
# 绘制雪花
for flake in snowflakes:
pygame.draw.circle(screen, (255, 255, 255), (int(flake[0]), int(flake[1])), flake[3]) # 使用大小参数绘制雪花
flake[1] += flake[2] # 移动雪花
if flake[1] > height:
flake[1] = random.randrange(-50, -10)
flake[0] = random.randrange(0, width)
# 更新屏幕
pygame.display.flip()
# 控制帧率
pygame.time.Clock().tick(30)
# 退出pygame
pygame.quit()
下面给出改进版
效果图:
使用一张背景图片(我这里文件名:snow_background.jpg),和代码文件放在同一目录下
源码如下:
import pygame
import random
# 初始化pygame
pygame.init()
# 设置屏幕尺寸
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
# 加载背景图片
background = pygame.image.load('snow_background.jpg')
background = pygame.transform.scale(background, (width, height))
# 设置雪花属性
snowflakes = []
for i in range(50):
x = random.randrange(0, width)
y = random.randrange(0, height)
speed = random.uniform(1, 3)
size = random.randint(3, 6) # 雪花大小参数
snowflakes.append([x, y, speed, size])
# 循环直到用户关闭窗口
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 填充屏幕颜色
#screen.fill((200, 200, 200)) # (0, 0, 0)黑色;(200, 200, 200)阴天
# 绘制背景图片
screen.blit(background, (0, 0))
# 移动雪花并重新绘制
for flake in snowflakes:
pygame.draw.circle(screen, (255, 255, 255), (int(flake[0]), int(flake[1])), flake[3]) # 使用大小参数绘制雪花
flake[1] += flake[2] # 移动雪花
if flake[1] > height:
flake[1] = random.randrange(-50, -10)
flake[0] = random.randrange(0, width)
# 更新屏幕
pygame.display.flip()
# 控制帧率
pygame.time.Clock().tick(30)
# 退出pygame
pygame.quit()
附:RGB 颜色表 https://www.codeeeee.com/color/rgb.html
原文地址:https://blog.csdn.net/cnds123/article/details/135648592
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_60082.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。