使用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
 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 23:36:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 23:36:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 23:36:03       82 阅读
  4. Python语言-面向对象

    2024-01-19 23:36:03       91 阅读

热门阅读

  1. js面试题

    2024-01-19 23:36:03       44 阅读
  2. 服务器怎么更换cdn?-速盾网络

    2024-01-19 23:36:03       59 阅读
  3. C语言中宏定义中#和##使用详解

    2024-01-19 23:36:03       57 阅读
  4. 高防服务器的优点有哪些?

    2024-01-19 23:36:03       57 阅读
  5. 计算机网络(第六版)复习提纲2

    2024-01-19 23:36:03       48 阅读
  6. Spring⾥⽤到的设计模式

    2024-01-19 23:36:03       47 阅读
  7. Redis的安装与配置

    2024-01-19 23:36:03       48 阅读
  8. Spring集成MyBatis与MyBatis-Plus添加分页插件

    2024-01-19 23:36:03       55 阅读
  9. Redis 配置

    2024-01-19 23:36:03       47 阅读