| 73 | self.restart_counter() |
| 74 | |
| 75 | def collisions(self): |
| 76 | if self.rect.top <= 0 or self.rect.bottom >= HEIGHT: |
| 77 | pygame.mixer.Sound.play(hit_sound) |
| 78 | self.speed_y *= -1 |
| 79 | |
| 80 | if pygame.sprite.spritecollide(self, self.paddles, False): |
| 81 | pygame.mixer.Sound.play(hit_sound) |
| 82 | collision_paddle = pygame.sprite.spritecollide(self, self.paddles, False)[ |
| 83 | 0 |
| 84 | ].rect |
| 85 | if abs(self.rect.right - collision_paddle.left) < 10 and self.speed_x > 0: |
| 86 | self.speed_x *= -1 |
| 87 | if abs(self.rect.left - collision_paddle.right) < 10 and self.speed_x < 0: |
| 88 | self.speed_x *= -1 |
| 89 | if abs(self.rect.top - collision_paddle.bottom) < 10 and self.speed_y < 0: |
| 90 | self.rect.top = collision_paddle.bottom |
| 91 | self.speed_y *= -1 |
| 92 | if abs(self.rect.bottom - collision_paddle.top) < 10 and self.speed_x > 0: |
| 93 | self.rect.bottom = collision_paddle.top |
| 94 | self.speed_y *= -1 |
| 95 | |
| 96 | def reset_ball(self): |
| 97 | for paddle in self.paddles: |