猫史档案馆


【Python作品分享】pygame实现雨滴下落背景动画特效【作品秀】

用户:菜鸟程序员菜鸟程序员查看:2 回复:14 评论:2 创建时间:2019-10-16T20:12:32


【作品展示】

center_image

 

【作品介绍】

雨滴下落背景动画特效,代码逻辑简单明了。喜欢的喵喵们下载吧。

 

【作品源代码】

import pygame
import random
import sys
#雨滴类
class Drop():
    def __init__(self,w,h):
        self.x = random.randint(0,w)   #雨滴X坐标
        self.y = random.randint(-1000, 0)  # 雨滴Y坐标
        self.speed = random.randint(4, 6)  # 雨滴的速度
        self.l = random.randint(0.8*h,0.9*h) #雨滴消失范围
        #绘制波纹
        self.r = 1 #初始化圆半径l
        self.vr = 1 #圆扩张速度
        self.a = 255  #透明度
        self.va = 0.96 #透明度系数

    def draw(self):
        #雨滴颜色
        color = (0, 255, 255, self.a)
        #绘制雨滴
        if self.y < self.l:
            #绘制雨滴 0表示填充颜色
            pos = self.x, self.y, 2, 6
            pygame.draw.rect(surface2, color, pos, 0)
        else:
            #绘制波纹  1表示不填充颜色
            rp = (int(self.x), int(self.y))
            pygame.draw.circle(surface2, color, rp, self.r, 1)
        self.updata()
    
    def updata(self):
        #如果雨滴没超出消失范围
        if self.y < self.l:
            #雨滴移动
            self.y += self.speed
        else:
            if self.a > 1:
                self.r += self.vr
                self.a *= self.va
            else:
                self.__init__(800,600)

#创建雨滴
def createDrop(i):
    drop = Drop(800, 600)
    drop.__init__(800, 600)
    drop.draw()
    drops.append(drop)
    print("创建雨滴", i)

#设置雨滴数
def SetDrop(num):
    for i in range(num):
        createDrop(i)



#申明数组存储雨滴个数
drops = []
#创建雨滴个数
dropNum = 50
#创建游戏窗口        
pygame.init()
window = pygame.display.set_mode([800, 600])
#透明填充色! alpha=0,全透明
surface2 = window.convert_alpha()
surface2.fill((255, 255, 255, 0))
timeClock = pygame.time.Clock()
SetDrop(dropNum)

#核心代码
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    #显示到窗口上
    window.blit(surface2, (0, 0))
    #刷新屏幕
    surface2.fill((0, 0, 0, 25))
    for i in range(dropNum):
        drops[i].draw()
    pygame.display.flip()
    #帧数
    timeClock.tick(70)

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
梦之泪伤nmb梦之泪伤nmb

非常有意思的程序,且写的很规范!

非常感谢!

点赞1


评论


浪日子的鲸浪日子的鲸

厉害哦!

点赞1


评论


YDSmnxYDSmnx

喵d!大佬

点赞1


评论


ALreaDy丶ALreaDy丶

大佬大佬,手下膝盖

点赞1


评论


一叶知秋凉一叶知秋凉

6翻了!!!

点赞1


评论


比比芭比波哩波比比芭比波哩波

emotion_编程猫_点赞emotion_编程猫_点赞emotion_编程猫_点赞emotion_编程猫_厉害了

点赞1


评论


兴奋的黄金呆鲤鱼兴奋的黄金呆鲤鱼

666666

点赞1


评论


唯心Y不易唯心Y不易

大佬流批

点赞1


评论


灵巧的花粉蝶DQ22灵巧的花粉蝶DQ22

66666!

点赞0


评论


QBZ_QBZ_

哇!这个超赞的

点赞1


评论


QBZ_QBZ_

我这也有,看了以后自叹弗如

点赞0


评论


QBZ_QBZ_

center_image

点赞1


评论


無一郎無一郎

emotion_编程猫_点赞

点赞0


评论


名字是什么a名字是什么a

大佬

点赞0


评论