以下是部分代码预览:
"""本程序描述了一幅满天飞雪的动画场景,动态背景之雪山下雪神秘音乐,这是把一个scratch作品用python表现出来的作品."""
import time
import pygame
from pygame.locals import *
from random import randint
class Snow(pygame.sprite.Sprite):
def __init__(self,screen_size):
self.sw,self.sh = screen_size
pygame.sprite.Sprite.__init__(self)
self.radius = randint(1,8)
self.image = pygame.Surface((2*self.radius,2*self.radius))
self.image.set_colorkey((0,0,0))
def update(self):
"""往下移动雪花"""
self.rect.move_ip(0,self.yspeed)
if self.rect.top > self.sh:self.reset()
def reset(self):
""" 设定位置"""
self.rect.centerx = randint(0,self.sw)
self.rect.bottom = randint(-2* self.sh,10)
class Fade_background :
"""淡入淡出动态背景类,把一系列帧图像做为背景不断地渐隐渐现的显示"""
def __init__(self,images,size):
"""images:已转换成surface的对象列表,size:屏幕尺寸"""
self.screen_size = size
self.images = images # images是surface列表
def update(self):
"""淡入淡出地显示图像,然后换一幅图像"""
def set_shape(self,index):
"""设置初始造型和透明度为0"""
def set_alpha(self):
"""设置透明度"""
self.step = self.step % 50
self.alpha = 10 * (25-abs(25-self.step)) # 自定义属性,0代表完全透明,255,代表透明
def main():
"""主要的调用函数"""
title = "漫天飞雪效果动画_pygame淡入淡出动态背景class类与播放背景音乐,作者:李兴球"
width,height = 960,720
pygame.init()
screen = pygame.display.set_mode((width,height))
pygame.display.set_caption(title)
images = ["bgs/No trees night.png","bgs/No trees.png","bgs/Trees night.png","bgs/Trees.png"]
images = [pygame.image.load(image).convert() for image in images]
background = pygame.image.load("bgs/backdrop1.png")
bgs = Fade_background(images,(width,height))
# 播放背景音乐
pygame.mixer.init()
pygame.mixer.music.load("bgs/The Snow Queen.wav")
pygame.mixer.music.play(-1,0)
snows = pygame.sprite.Group()
for i in range(500):
snows.add(Snow((width,height)))
clock = pygame.time.Clock()
running = True
while running :
event = pygame.event.poll()
if event.type == QUIT:running = False
bgs.update()
snows.update()
pygame.display.flip()
clock.tick(60)
pygame.quit()
if __name__ == "__main__":
main()
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
