codesafety_x11repo

Untitled

Apr 27th, 2020
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.27 KB | None | 0 0
  1.    
  2. #  Описываем класс Paddle, который отвечает за платформы
  3. class Paddle:
  4.     # конструктор
  5.     def __init__(self, canvas, color):
  6.         # canvas означает, что платформа будет нарисована на нашем изначальном холсте
  7.         self.canvas = canvas
  8.         # создаём прямоугольную платформу 10 на 100 пикселей, закрашиваем выбранным цветом и получаем её внутреннее имя
  9.         self.id = canvas.create_rectangle(0, 0, 100, 10, fill=color)
  10.         # задаём список возможных стартовых положений платформы
  11.         start_1 = [40, 60, 90, 120, 150, 180, 200]
  12.         # перемешиваем их
  13.         random.shuffle(start_1)
  14.         # выбираем первое из перемешанных
  15.         self.starting_point_x = start_1[0]
  16.         # перемещаем платформу в стартовое положение
  17.         self.canvas.move(self.id, self.starting_point_x, 300)
  18.         # пока платформа никуда не движется, поэтому изменений по оси х нет
  19.         self.x = 0
  20.         # платформа узнаёт свою ширину
  21.         self.canvas_width = self.canvas.winfo_width()
  22.         # задаём обработчик нажатий
  23.         # если нажата стрелка вправо — выполняется метод turn_right()
  24.         self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
  25.         # если стрелка влево — turn_left()
  26.         self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
  27.         # пока игра не началась, поэтому ждём
  28.         self.started = False
  29.         # как только игрок нажмёт Enter — всё стартует
  30.         self.canvas.bind_all('<KeyPress-Return>', self.start_game)
  31.     # движемся вправо
  32.     def turn_right(self, event):
  33.         # будем смещаться правее на 2 пикселя по оси х
  34.         self.x = 2
  35.     # движемся влево
  36.     def turn_left(self, event):
  37.         # будем смещаться левее на 2 пикселя по оси х
  38.         self.x = -2
  39.     # игра начинается
  40.     def start_game(self, event):
  41.         # меняем значение переменной, которая отвечает за старт
  42.         self.started = True
  43.     # метод, который отвечает за движение платформы
  44.     def draw(self):
  45.         # сдвигаем нашу платформу на заданное количество пикселей
  46.         self.canvas.move(self.id, self.x, 0)
  47.         # получаем координаты холста
  48.         pos = self.canvas.coords(self.id)
  49.         # если мы упёрлись в левую границу
  50.         if pos[0] <= 0:
  51.             # останавливаемся
  52.             self.x = 0
  53.         # если упёрлись в правую границу
  54.         elif pos[2] >= self.canvas_width:
  55.             # останавливаемся
  56.             self.x = 0
Advertisement
Add Comment
Please, Sign In to add comment