Форум сайта python.su
Всем доброго времени суток,прошу не смеяться и не материться… Я начал изучать Python совсем недавно и при разработке одной анимации у меня появилась одна проблема.И так, у меня есть нарисованный в tk лабиринт,и есть объект,который движется по определённой траектории,ну так вот… проблема заключается в том,что когда я запускаю программу,сначала появляется лабиринт,а потом объект,который должен двигаться.Все,кто может помочь склеить это всё воедино,прошу откликнуться.
ниже прикреплён файл с моими работами
Прикреплённый файлы: Архив WinRAR (2).rar (18,7 KБ)
Офлайн
Я готов помочь. Разобраться что Вы хотите, привести пример и вычитать Ваш код.
Но только после того, как Вы перенесете свой вопрос в ветку GUI.
В этой ветке я этого делать не буду принципиально, так как Ваш вопрос касается GUI, и люди ищут все ответы по GUI предварительно там. А так я отвечу лишь Вам :)
Офлайн
Перенес, наверное, модератор. Но все равно…
Теперь вопрос.
Что Вы, мил человек, хотите реализовать.
Как я понимаю, Вы хотите, чтобы солнце двигалось по лабиринту с помощью клавиш “Влево”, “Вправо”, “Вверх” и “Вниз”? Как солнце должно реагировать на препятствия? Какого размера оно должно быть (в том размере, в котором Вы его используете - оно не пролезет через Ваш лабиринт, если считать, что границы солнца не должны перекрывать границы стен лабиринта)?
Опишите полностью задачу и тогда я Вам, с удовольствием, помогу.
Офлайн
С размерами я разберусь,т.к это дело 5ти минут. Солнце будет двигаться просто по нажатии одной клавиши,начальную функцию движения я тоже положил в архив.
Меня интересует такой вопрос, как наложить это солнце на сам лабиринт. Т.к при попытке склеить ф-цию движения и лабиринт ничего хорошего не получалось.
Отредактировано Spartanec (Ноя. 29, 2012 15:47:23)
Офлайн
Он еще и в rar архив это все запаковал…
Офлайн
cutwater
Уже качал. Видел.
Spartanec
Задачу понял. Завтра гляну…
Отредактировано 4kpt (Ноя. 29, 2012 21:12:08)
Офлайн
Появилось время и возможность…
Посмотри код. Маршрут движения можешь прописать самостоятельно (я просто привел пример).
Если будут вопросы, пиши.
# -*- 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()
Отредактировано 4kpt (Ноя. 29, 2012 23:34:12)
Офлайн