南京音乐推荐联合社

用Python 实现雪花效果

伪君子的梦呓 2020-05-22 10:03:04

0.0  前言

前些日子一直在学爬虫,好不容易学会了点,一试手就被封ip 48个小时了,再来一次,还是48个小时。我认输,只能说老司机的反爬虫技术非常好。


既然这样就把之前实现过的东西分享一下,今天主要是介绍用 Python 实现雪花效果,有趣,而且不难,源代码有了,直接改一下就可以运行了。


1.0  运行环境

Win10系统下 Python3,编译器是 Pycharm,需要安装pygame.


用Pycharm安装第三方包很简单,照着下面的来就好。



如果不是用 Pycharm 的,那就直接打开cmd,然后输入pip install pygame ,接着回车就好。




2.0  代码

先导入pygame、random

import pygame
import random


然后初始化pygame

pygame.init()  #  初始化pygame


SIZE = (1920, 1080)  # 根据图片的大小来设置
screen = pygame.display.set_mode(SIZE)
pygame.display.set_caption("下雪啦") # 下雪啦这个可以改成你喜欢的
bg = pygame.image.load('snow.jpg')      # snow.jpg是图片的名称,要保持一致


举个例子,我把 snow.jpg  放在和源代码同一个目录下,因为 snow.jpg 的分辨率是1920*1080,所以我的 SIZE 是(1920, 1080)



先定义一个雪花列表,然后初始化雪花,把坐标和速度赋值给雪花。


snow_list = []  # 雪花列表

for i in range(200):  # 初始化雪花:[x坐标, y坐标, x轴速度, y轴速度]
   x = random.randrange(0, SIZE[0])
   y = random.randrange(0, SIZE[1])
   sx = random.randint(-1, 1)
   sy = random.randint(3, 6)
   snow_list.append([x, y, sx, sy])

clock = pygame.time.Clock()


完整代码在下面,感谢代码的提供者和传播者。

https://github.com/crossin/snippet/blob/master/snow/snow.py


具体效果


3.0  相关说明

完整代码(中文注释):https://github.com/crossin/snippet/blob/master/snow/snow.py


完整代码(英文注释+解释):http://programarcadegames.com/index.php?chapter=introduction_to_animation&lang=cn#section_8


配套视频:https://www.youtube.com/watch?v=Gkhz3FuhGoI&feature=youtu.be


因为视频是在 youtube 的,所以需要翻越一下才能正常浏览,可以在公众号后台回复【翻越思维的墙】来了解一下怎么翻越。


要是觉得麻烦,我已经把视频搬运回来了,480P的,不是高清。所以说,最好还是能够正常的浏览互联网。





顺便把二维码也弄了一下,还挺好看的



Copyright © 南京音乐推荐联合社@2017