为什么轮子没有动画(从屏幕左侧移动到右侧)Python 3 使用 zelle 图形

Why isn't wheel animating(moving from left side of screen to the right) Python 3 using zelle graphics

我正在尝试为使用 zelle 图形库绘制的轮子制作动画。轮子没有动画。它应该做的是从屏幕的左侧移动到右侧。该函数在 Wheel 内部 class。它只是两个看起来像轮子的圆圈。它不旋转,中心只是让它从一侧移动到另一侧。

from graphics import *
class Wheel():

    def __init__(self, center, wheel_radius, tire_radius):
        self.tire_circle = Circle(center, tire_radius)
        self.wheel_circle = Circle(center, wheel_radius)

    def draw(self, win): 
        self.tire_circle.draw(win) 
        self.wheel_circle.draw(win) 

    def move(self, dx, dy): 
        self.tire_circle.move(dx, dy) 
        self.wheel_circle.move(dx, dy)

    def set_color(self, wheel_color, tire_color):
        self.tire_circle.setFill(tire_color) 
        self.wheel_circle.setFill(wheel_color)

    def undraw(self): 
        self.tire_circle .undraw() 
        self.wheel_circle .undraw() 

    def get_size(self):
        return self.tire_circle.getRadius()

    def get_center(self):
        return self.tire_circle.getCenter()

    def animate(self, win, dx, dy, n):
        if n > 0:
            self.move(dx, dy)
            win.after(100, self.animate, win, dx, dy, n-1)


# Define a main function; if you want to display graphics, run main()
# after you load code into your interpreter
def main():
    # create a window with width = 700 and height = 500
    new_win = GraphWin('Wheel', 700, 500) 

    # What we'll need for the wheel...
    wheel_center = Point(200, 200) # The wheel center is a Point at (200, 
200)
    tire_radius = 100  # The radius of the outer tire is 100

    # Make a wheel object
    new_wheel = Wheel(wheel_center, 0.6*tire_radius, tire_radius)

    # Set its color
    new_wheel.set_color('red', 'black')
    # And finally, draw it 
    new_wheel.draw(new_win)
   # Run the window loop (must be the *last* line in your code)
    new_win.mainloop()
# Comment this call to main() when you import this code into
#  your car.py file - otherwise the Wheel will pop up when you
#  try to run your car code.

main()

你必须使用animate()来启动动画

new_wheel.animate(new_win, 10, 0, 30)

new_win.mainloop()