turtle爆炸粒子效果

turtle explode particle爆炸粒子效果

turtle explode particle爆炸粒子效果

"""
   爆炸粒子效果,本程序实现了一个爆炸类。它生成的对象可重复使用爆炸方法。
   所有粒子都是画出来的,它们飞出后速度会越来越慢直到消失。
   相对于传统的编程方法,需要生成很多对象,而本程序只用一个对象,从而大大节约CPU及内存资源。
   
"""
import time
from turtle import  *
from random import *

__author__ = '李兴球'
__date__ = '2019/10/3'

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 = []
    for i in range(1):
        for j in range(1):
            x = 0 + j * 150
            y =  0 - i * 150
            print((x,y),end=',')
            c = choice(colors)
            ps.append(Explosion(c,(x,y)))
        print()
        
    def 爆炸():
        [e.explode() for e in ps]
        screen.ontimer(爆炸,3000)

    爆炸()

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()                       # 初始化其它
    

You must log in to read the rest of this article. Please log in or register as a user.