Advertisement
Guest User

MovingBall

a guest
Jan 1st, 2019
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. from tkinter import *
  2.  
  3. def eventHandler(event): # Обрабатываем точку клика
  4.     canvas.unbind("<Button-1>")
  5.     global mouseX, mouseY
  6.     mouseX, mouseY = event.x, event.y
  7.     if mouseX < 30: mouseX = 30 # Ограничиваем перемещение по X
  8.     if mouseY < 30: mouseY = 30 # и по Y
  9.     moveBall()
  10.  
  11. def moveBall():
  12.     x, y = canvas.coords(ball)[2], canvas.coords(ball)[3] # Координаты шара
  13.     x = {
  14.         x <  mouseX: 1,
  15.         x == mouseX: 0,
  16.         x >  mouseX: -1
  17.     }[True] # Сдвиг по X
  18.     y = {
  19.         y <  mouseY: 1,
  20.         y == mouseY: 0,
  21.         y >  mouseY: -1
  22.     }[True] # Сдвиг по Y
  23.     canvas.move("smile", x, y) # Двигаем в нужном направлении
  24.     if canvas.coords(ball)[2] != mouseX or canvas.coords(ball)[3] != mouseY:
  25.         root.after(10, moveBall)
  26.     else:
  27.         canvas.bind('<Button-1>', eventHandler)
  28.  
  29. root = Tk()
  30. mouseX, mouseY = None, None
  31.  
  32. canvas = Canvas(root, width=500, height=500, bg="white")
  33.  
  34. ball = canvas.create_oval((5,5), (35,35), fill="yellow", outline="yellow", tag="smile")
  35. canvas.create_arc((15,15), (25,25), style=ARC, start=210, extent=120, tag="smile")
  36. canvas.create_line((15,15), (16,16), tag="smile")
  37. canvas.create_line((25,15), (26,16), tag="smile")
  38.  
  39. canvas.bind('<Button-1>', eventHandler)
  40.  
  41. canvas.pack()
  42.  
  43. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement