Example #1
0
def run(tk):
    
    s = Canvas(tk, width =  800, height = 800, background = "blue")
    s.grid(row = 0, column = 0)
    
    pond = PhotoImage(file = "pond.gif")
    pondO = None
    
    queue = Queue()
    
    shared = Array('i', [0, 0, 0])
    paused = Array('i', [1, 1, 0, 1])
    
    stars = Stars(queue, shared, paused)
    stars.start()
    sleep(0.01)
    main = MainThread(queue, shared, paused)
    main.start()
    sleep(0.01)
    rain = Rain(queue, shared, paused)
    rain.start()
    sleep(0.01)
    clouds = Clouds(queue, shared, paused)
    clouds.start()
    
    
    while True:
        
        contA = []
        
        while len(contA) < 4:
        
            try:
                task = queue.get(block = False)
            except:
                pass
            else:
                try:
                    if task.oper == "create":
                        object = s._create(task.object, task.coords, task.kw)
                        task.pipeSend.send(object)
                    elif task.oper == "config":
                        s.config(task.kw)
                    elif task.oper == "coords":
                        s.coords(task.object, task.coords)
                    elif task.oper == "itemconfig":
                        s.itemconfig(task.object, task.kw)
                    elif task.oper == "cont":
                        contA.append(1)
                except:
                    break
                
        if pondO == None:
            pondO = s.create_image(150, 700, image = pond)
            
        try:        
            s.update()
        except:
            break
            
        paused[0] = 0
        paused[1] = 0
        paused[2] = 0
        paused[3] = 0