Python视频教学示例: 酷酷的爆炸效果_多线程版本

Python视频教学示例: 酷酷的爆炸效果_多线程版本

李兴球python爆炸效果多线程版
李兴球python爆炸效果多线程版

李兴球python爆炸效果多线程版

这是一个用到多线程的爆炸效果,以下是风火轮在编程课堂上用到的教学视频,请对着它单击右键,另存为视频到本地!

[videojs mp4=”http://qadj1c43i.bkt.clouddn.com/kukude_explosion%20effect.mp4″]

下面是酷酷的爆炸效果的完整源代码:

"""
   酷酷的爆炸效果_多线程版.py
   本模块用于产生爆炸效果,它是用Python的海龟画图模块制作的。
   其基本原理是切换造型,但是如果要让很多炸弹都同时爆炸,而不
   阻赛程序的运行,这就需要用到异步执行了,在这里用的是多线程
   每个线程对应一个函数,在函数内部有while循环。
   最后,爆炸效果想要酷,gif图片可要选择好。
"""

from glob import glob
from time import sleep
from random import randint,random
from turtle import Screen ,Turtle
from threading import Thread

def explode1():
    """pos坐标位置产生爆炸效果,frames:就gif序列帧"""
    sleep(random())
    t = Turtle(visible=False)             # 实例化一个对象
    t.penup()                             # 抬起笔来
    t.speed(0)                            # 速度为最快 

    while True:
        x = randint(-width//2,width//2)   # 定位x坐标
        y = randint(-height//2,height//2) # 定位y坐标 
        t.goto(x,y)                       # 坐标定位置
        t.st()                            # 显示出来
        for frame in frames:
            t.shape(frame)       
            sleep(0.1)
        t.hideturtle()


if __name__ == "__main__":

    width,height = 800,600
    frames = glob("explosion/*.gif")
    screen = Screen()
    screen.setup(width,height)
    screen.bgcolor("black")
    screen.delay(0)
    screen.title("酷酷的爆炸效果多线程版_作者李兴球")
    [screen.addshape(image) for image in frames]

    for _ in range(10):               # 启动10个线程 
      Thread(target=explode1).start()
    
    screen.exitonclick()   

需要本程序的py文件和思维导图与素材请

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

李兴球

李兴球的博客是Python创意编程原创博客