Посмотри код. Маршрут движения можешь прописать самостоятельно (я просто привел пример).
Если будут вопросы, пиши.
# -*- coding: utf-8 -*-
import Tkinter
import ImageTk
import time
root = Tkinter.Tk()
w = Tkinter.Canvas(root, width=1114, height=640)
w.pack()
w.focus_force()
w.create_polygon(100, 10, 760, 10, 760, 240, 560, 240, 560, 200, 720, 200,
720, 50, 680, 50, 680, 160, 520, 160, 520, 240, 480, 240,
480, 90, 640, 90, 640, 50, 440, 50, 440, 90, 400, 90, 400,
50, 100, 50, 100, 10, fill='red')
w.create_polygon(100, 90, 360, 90, 360, 160, 400, 160, 400, 200, 440, 200,
440, 240, 100, 240, 100, 90, fill='green')
w.create_polygon(100, 280, 400, 280, 400, 320, 440, 320, 440, 440, 500, 440,
500, 480, 400, 480, 400, 360, 360, 360, 360, 320, 100, 320,
100, 280, fill='blue')
w.create_polygon(100, 440, 140, 440, 140, 520, 100, 520, 100, 440,
fill='red')
w.create_line(100, 360, 140, 360, 140, 400, 180, 400, 180, 520, 500, 520, 500,
560, 540, 560, 580, 560, 580, 520, 710, 520, 710, 480, 840, 480,
840, 440, 920, 440, 920, 520, 880, 520, 880, 560, 920, 560, 920,
600, 100, 600, fill='red')
w.create_polygon(100, 600, 100, 560, 140, 560, 140, 600, 100, 600,
fill='red')
w.create_polygon(200, 600, 200, 560, 280, 560, 280, 600, fill='red')
w.create_polygon(640, 600, 640, 560, 760, 560, 760, 520, 800, 520, 800, 600,
800, 600, fill='red')
w.create_polygon(670, 480, 580, 480, 580, 440, 640, 440, 640, 400, 760, 400,
760, 360, 720, 360, 720, 280, 760, 280, 760, 320, 800, 320,
800, 440, 670, 440, 670, 480, fill='hotpink')
w.create_polygon(480, 400, 480, 320, 520, 320, 520, 280, 680, 280, 680, 360,
640, 360, 640, 320, 560, 320, 560, 400, 480, 400,
fill='orange')
w.create_line(760, 90, 840, 90, 840, 130, 800, 130, 800, 280, 759, 280,
fill='orange')
w.create_line(760, 10, 800, 10, fill='blue')
w.create_polygon(800, 10, 1000, 10, 1000, 560, 960, 560, 960, 400, 840, 400,
840, 280, 920, 280, 920, 280, 920, 360, 960, 360, 960, 60,
920, 60, 920, 240, 840, 240, 840, 200, 880, 200, 880, 50,
800, 50, 800, 10, fill='yellow')
w.create_line(100, 360, 100, 440, fill='red')
w.create_line(920, 600, 1000, 600)
finish = ImageTk.PhotoImage(file='finish.gif')
start = ImageTk.PhotoImage(file='start.gif')
sun = ImageTk.PhotoImage(file='sun.gif')
w.create_image(1050, 560, image=finish)
w.create_image(50, 160, image=start)
sun_tk = w.create_image(100, 100, image=sun)
def sun_must_move(event = None):
for i in xrange(40):
time.sleep(0.1)
if i < 20: # Первые двадцать шагов
w.move(sun_tk, 5, 0)
w.update_idletasks()
elif i >= 20: # Следующие двадцать шагов
w.move(sun_tk, 0, 5)
w.update_idletasks()
bt = Tkinter.Button(root)
bt["text"] = u"Поехали"
bt["command"] = sun_must_move
bt["width"] = 30
bt["bg"] = "magenta"
bt.pack()
# Если нужно, чтобы солнце двигалось само, нужно удалить строки с bt
# и вставить строку root.after(10, sun_must_move)
root.mainloop()
В очередной раз делаю акцент на отказе от использования конструкции from имя_модуля import*.
Делайте программы с явным указанием на имя_модуля.метод(параметры). В этом случае никогда не будет конфликта имен, соответственно Вы сохраните свои нервы и Вам удасться избежать целого пласта ошибок, связанных с именами переменных.