Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. from tkinter import *
  2. root = Tk()
  3. root.title("ПингПонг")
  4.  
  5. def move_ball():
  6. c.move(BALL, BALL_X_CHANGE, BALL_Y_CHANGE)
  7.  
  8. def move_pads():
  9. PADS = {LEFT_PAD: LEFT_PAD_SPEED,
  10. RIGHT_PAD: RIGHT_PAD_SPEED}
  11. #перебираем ракетки
  12. for pad in PADS:
  13. #двигаем ракетку с заданной скоростью
  14. c.move(pad, 0, PADS[pad])
  15. #если ракетка вылезает за игровое поле возвращаем её на место
  16. if c.coords(pad)[1]<0:
  17. c.move(pad, 0, -c.coords(pad)[1])
  18. elif c.coords(pad)[3]>HEIGHT:
  19. c.move(pad, 0, HEIGHT - c.coords(pad)[3])
  20.  
  21. def movement_handler(event):
  22. global LEFT_PAD_SPEED, RIGHT_PAD_SPEED
  23. if event.keysym == 'w':
  24. LEFT_PAD_SPEED = -PAD_SPEED
  25. elif event.keysym == 's':
  26. LEFT_PAD_SPEED = PAD_SPEED
  27. elif event.keysym == 'Up':
  28. RIGHT_PAD_SPEED = -PAD_SPEED
  29. elif event.keysym == 'Down':
  30. RIGHT_PAD_SPEED = PAD_SPEED
  31.  
  32. def main():
  33. move_ball()
  34. move_pads()
  35. root.after(30, main) #вызов самой себя через 30 миллисекунд
  36.  
  37.  
  38.  
  39.  
  40.  
  41. ########## Глобальные настройки ##########
  42. ##### Настройки окна #####'
  43. WIDTH = 1280
  44. HEIGHT = 720
  45. c = Canvas(root, width=WIDTH, height=HEIGHT, background="#003300")
  46. c.pack()
  47. c.create_line(WIDTH/2, 0, WIDTH/2, HEIGHT, fill='white')
  48.  
  49. ##### Настройки ракеток #####
  50. PAD_W = 10 #Ширина ракеток
  51. PAD_H = 100 #Высота ракеток
  52.  
  53. ##### Настройки мяча #####
  54. BALL_RADIUS = 35 #радиус мяча
  55. BALL_X_CHANGE = 20 #скорость по горизонтали
  56. BALL_Y_CHANGE = 0 #скорость по вертикали
  57.  
  58.  
  59. ##### Создание игровыхЪ элементовЪ #####
  60. BALL = c.create_oval(WIDTH/2-BALL_RADIUS,
  61. HEIGHT/2-BALL_RADIUS,
  62. WIDTH/2+BALL_RADIUS,
  63. HEIGHT/2+BALL_RADIUS, fill='pink')
  64. LEFT_PAD = c.create_line(PAD_W/2, 0, PAD_W/2, PAD_H, width=PAD_W, fill='pink')
  65. RIGHT_PAD = c.create_line(WIDTH-PAD_W/2, HEIGHT, WIDTH-PAD_W/2, HEIGHT-PAD_H, width=PAD_W,
  66. fill='pink')
  67. PAD_SPEED = 20 #скорость, с которой ездят ракетки
  68. LEFT_PAD_SPEED = 0 #скорость левой ракетки
  69. RIGHT_PAD_SPEED = 0 #скорость правой ракетки
  70.  
  71. c.focus_set()
  72. c.bind("<KeyPress>", movement_handler)
  73. main()
  74. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement