Piłka odbija się od paletki

Kolizje - Gry w Pythonie - wstęp (Python)

Kolizja może zmienić ruch. Piłka leci z prędkością `vx`, `vy` i odbija się od ścian jak w lekcji o krawędziach. Gdy dotknie paletki, `vy` zmienia znak, ale tylko wtedy, gdy piłka leci w dół (`vy < 0`). Bez tego warunku piłka, która wbiła się w paletkę, odbijałaby się w kółko w miejscu.

class Paddle(Sprite):
  def __init__(self):
    self.image = 2
    self.color = (71, 85, 105)
    self.size = 25
    self.position = (0, -85)

  def update(self):
    self.x = world.mouse.x

class Ball(Sprite):
  def __init__(self):
    self.image = 40
    self.color = (234, 88, 12)
    self.size = 15
    self.position = (0, 50)
    self.vx = 2
    self.vy = -2

  def update(self):
    self.x = self.x + self.vx
    self.y = self.y + self.vy
    if self.x >= 95 or self.x <= -95:
      self.vx = -self.vx
    if self.y >= 95 or self.y <= -95:
      self.vy = -self.vy
    if self.touches(paddle) and self.vy < 0:
      self.vy = -self.vy

paddle = Paddle()
world.add(paddle)
world.add(Ball())
world.start()

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Gry w Pythonie - wstęp·Zaloguj się, aby zapisać postęp na koncie.