Moviendo bolas en Lienzo Tkinter

Este es un programa muy básico con el que quiero hacer dos bolas en movimiento, pero solo una de ellas se mueve.

También probé algunas variaciones, pero no puedo mover la segunda bola; otra pregunta relacionada: algunas personas usan elmove(object) método para lograr esto, mientras que otros hacen undelete(object) y luego redibujarlo. ¿Cuál debo usar y por qué?

Este es mi código que solo anima / mueve una bola:

from Tkinter import *

class Ball:
    def __init__(self, canvas, x1, y1, x2, y2):
    self.x1 = x1
    self.y1 = y1
    self.x2 = x2
    self.y2 = y2
    self.canvas = canvas
    self.ball = canvas.create_oval(self.x1, self.y1, self.x2, self.y2, fill="red")

    def move_ball(self):
        while True:
            self.canvas.move(self.ball, 2, 1)
            self.canvas.after(20)
            self.canvas.update()

# initialize root Window and canvas
root = Tk()
root.title("Balls")
root.resizable(False,False)
canvas = Canvas(root, width = 300, height = 300)
canvas.pack()

# create two ball objects and animate them
ball1 = Ball(canvas, 10, 10, 30, 30)
ball2 = Ball(canvas, 60, 60, 80, 80)

ball1.move_ball()
ball2.move_ball()

root.mainloop()

Respuestas a la pregunta(4)

Su respuesta a la pregunta