这是一个用到多线程的爆炸效果,以下是风火轮在编程课堂上用到的教学视频,请对着它单击右键,另存为视频到本地!
[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资源。)
发表评论