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

【作品介绍】
雨滴下落背景动画特效,代码逻辑简单明了。喜欢的喵喵们下载吧。
【作品源代码】
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