[Tutor] canvas -> make an object 'seem' to move
John Fouhy
john at fouhy.net
Fri May 4 01:36:22 CEST 2007
On 04/05/07, Teresa Stanton <tms43 at clearwire.net> wrote:
> the image and moves it. I should mention that I've tried 'move() and
> coord()' to get the object to move, but I am not getting the effect I want.
> When I use move in successive steps it just appears at the last move
> coordinates.
My Tkinter is quite rusty, but I think this is basically the approach
you need to take. However, you will need to put a delay in between
each call to coords, otherwise python will "optimise" by moving the
image to its final destination before drawing.
Something like:
# given initial coords (x0,y0), final coords (x1, y1)
img = canvas1.create_image(x0, y0, image=photo)
# step: number of steps to move in
step = 10.0
# duration: number of seconds to move the image
dur = 2
for i in range(1, int(step)+1):
xi = x0 + i*(x1-x0)/step
yi = y0 + i*(y1-y0)/step
canvas1.coords(img, xi, yi)
time.sleep(dur/step)
# you may need to add a call to canvas1.update_idletasks() here
# untested
HTH!
--
John.
More information about the Tutor
mailing list