Zderzenie kul

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

Dwie ruchome postacie też mogą się zderzyć. Kule toczą się ku sobie, a przy zderzeniu każda zawraca, ale tylko jeśli jeszcze jedzie w stronę drugiej. To ten sam warunek co przy paletce: bez niego kule, które na siebie nachodzą, zawracałyby w każdym ticku i skleiłyby się.

class Ball(Sprite):
  def __init__(self, x, speed, color):
    self.image = 40
    self.color = color
    self.size = 25
    self.position = (x, 0)
    self.speed = speed

  def update(self):
    self.x = self.x + self.speed
    if self.x >= 95 or self.x <= -95:
      self.speed = -self.speed
    other = right if self is left else left
    coming = (other.x - self.x) * self.speed > 0
    if self.touches(other) and coming:
      self.speed = -self.speed

left = Ball(-80, 2, (37, 99, 235))
right = Ball(80, -3, (220, 38, 38))
world.add(left)
world.add(right)
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.