本程序只有一个海龟对象,可是为什么会有这么多粒子呢?以下是部分代码预览:
""" 爆炸粒子效果,本程序实现了一个爆炸类。它生成的对象可重复使用爆炸方法。 所有粒子都是画出来的,它们飞出后速度会越来越慢直到消失。 相对于传统的编程方法,需要生成很多对象,而本程序只用一个对象,从而大大节约CPU及内存资源。 """ import time from turtle import * from random import * __author__ = '李兴球' __date__ = '2019/10/3' class Explosion(Turtle): """ 继承自Turtle的爆炸类,生成一定数量的点,这些点的坐标存储在cors列表中。 """ def __init__(self,color,pos=(0,0)): Turtle.__init__(self,visible=False) self.color(color) # 粒子颜色 self.initpos = pos # 爆炸坐标 self.up() # 抬笔 self.amounts = 100 # 粒子数量 self.init() # 初始化其它 def main(): """ 主要执行函数 """ colors = ['red','orange','yellow','green','cyan','blue', 'purple','pink','magenta','brown'] width,height = 480,360 screen = Screen() screen.bgcolor("white") screen.title("爆炸粒子效果 by lixingqiu") screen.tracer(0,0) ps = [] def 爆炸(): [e.explode() for e in ps] screen.ontimer(爆炸,3000) 爆炸() screen.mainloop() if __name__ == "__main__": main()
如需要查看完整源代码,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)