from tkinter import *
from canvasball import CanvasBall
import time

class BallWorld (object):
    width = 500
    height = 400
    
    def __init__ (self):
        self.root = Tk ()
        self.canvas = Canvas (self.root,
                              bg = 'black',
                              width = BallWorld.width,
                              height = BallWorld.height)
        self.canvas.pack ()
        button = Button (self.root,
                         text = "start",
                         command = self.buttonPressed)
        button.pack ()
        self.ball = CanvasBall (self.canvas, 30, 40, 4, 3, 5, self.width, self.height)

    def buttonPressed (self):
        # Inte idealt att ha animeringsloopen här
        # Bättre att använda trådningsteknik från föreläsning F11
        #
        # Det är heller inte särskilt lyckat att flytta på en boll
        # genom att rita över den gamla och rita ut en ny (som nedan
        # för enkelhets skull) eftersom alla bollar vi ritar ut kommer
        # att ta litet minne.  Se ballworld2.py för en lösning som är
        # bättre i det avseendet!
        #
        while True:
            self.ball.clear ()
            self.ball.update ()
            self.ball.draw ()
            self.canvas.update () # uppdatera bilden i canvasen
            time.sleep (0.015)

    def mainloop (self):
        self.root.mainloop ()

world = BallWorld ()
world.mainloop ()
