漫天飞雪效果动画_pygame淡入淡出_scratch转python

漫天飞雪效果动画_pygame淡入淡出动态背景class类与播放背景音乐

以下是部分代码预览:

"""本程序描述了一幅满天飞雪的动画场景,动态背景之雪山下雪神秘音乐,这是把一个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()        

下载完整源代码与素材,请扫码付款。

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 漫天飞雪效果动画_pygame淡入淡出_scratch转python
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页