免费教学示例: 酷酷的爆炸效果_多线程版本

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

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

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

"""
   酷酷的爆炸效果_多线程版.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文件和思维导图与素材请扫码付款:

VIP免费查看

已有4人支付

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

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

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