Credit: Problem written by Chris and Julia
Handouts: Graphics Reference
This program animates a square that moves until it is in the center of the screen. It starts on the left side.
"""
File: move_to_center.py
-------------------
Moves a square from the left edge to the center of the screen.
"""
import time
from graphics import Canvas
SQUARE_SIZE = 100
ANIMATION_DELAY_SECONDS = 0.02
SQUARE_MOVE_AMOUNT = 2
def main():
canvas = Canvas()
canvas.set_canvas_title("Move to Center")
# draw a square on the left side of the screen, centered
y = (canvas.get_canvas_height() - SQUARE_SIZE) / 2
square = canvas.create_rectangle(0, y, SQUARE_SIZE, y + SQUARE_SIZE)
canvas.set_color(square, "black")
# move horizontally until we get to the center
target_x = (canvas.get_canvas_width() - canvas.get_width(square)) / 2
while canvas.get_left_x(square) < target_x:
canvas.move(square, SQUARE_MOVE_AMOUNT, 0)
time.sleep(ANIMATION_DELAY_SECONDS)
canvas.update()
canvas.mainloop()
if __name__ == "__main__":
main()