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.