精卫填海多媒体动画

0 Comments

夸父要追日,精卫要填海,这些都不现实,
编程学Python,代码整整齐,这才是现实,
本作品展示了精卫鸟衔石头扔海里的配音动画。

"""
   精卫填海.py
   本程序不断地按顺序把列表中的图像设为屏幕的背景图,
   精卫鸟会不断地从屏幕左边出来,有时候会扔石头。
"""
from random import randint              # 从随机模块导入randint命令
from time import sleep                  # 从时间模块导入sleep命令
from sprites import *                   # 从精灵模块导入所有命令

def throwstone():
    """
       设定一定的机率,让小鸟扔石头的函数
    """
    if stone.ishide():                  # 如果石头是隐藏的 
        if randint(1,100)==1:           # 设定一定的概率
            stone.goto(bird.pos())      # 石头到鸟的坐标
            stone.show()                # 显示石头
    else:                               # 否则(石头就是显示的)
        stone.addy(-5)                  # 往下移动5个单位
        if stone.ycor()<-100:           # 如果石关的y坐标小于-100 
            stone.hide()                # 隐藏石头        
        
screen = Screen()                       # 新建屏幕
screen.setup(490,360)                   # 设定屏幕宽高 
screen.titlebar(False)                  # 关闭标题栏
screen.draggable()                      # 按鼠标中键拖动窗口
screen.bgcolor('black')                 # 设定背景为黑色 
screen.addpopup()                       # 加上右键菜单

images = []                             # 新建名为images列表,它的内容将是所有的背景图片
for i in range(100):                    # 由于frames文件夹下有从0.png到99.png的100张图片
    filename = os.getcwd() + os.sep + 'frames' + os.sep + str(i) + ".png"
    images.append(filename)             # 把文件添加到列表

stone = Sprite(shape='石头.png',visible=False)
stone.scale(0.5)                        # 设为原来一半大小
stone.setalpha(128)                     # 设置半透明

# 新建隐藏的小鸟角色,它用来代表精卫鸟
bird = Sprite(shape='精卫鸟小.png',pos=(0,50),visible=False) 
bird.play('精卫填海.wav',loop=True)     # 循环播放
bird.write("精卫填海",align='center',font=("楷体",24,'bold'))
bird.goto(-300,100)                     # 定位到坐标(-300,100)
bird.show()                             # 显示出来 


以下代码省略......

下载完整源代码与素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)