diff --git a/asteroid.py b/asteroid.py index 44fa349..ac7796a 100644 --- a/asteroid.py +++ b/asteroid.py @@ -1,5 +1,8 @@ import pygame +import random from circleshape import CircleShape +from constants import ASTEROID_MIN_RADIUS + class Asteroid(CircleShape): def __init__(self, x, y, radius): super().__init__(x, y, radius) @@ -8,4 +11,18 @@ class Asteroid(CircleShape): pygame.draw.circle(screen, "white", self.position, self.radius, 2) def update(self, dt): - self.position += (self.velocity * dt) \ No newline at end of file + self.position += (self.velocity * dt) + + def split(self): + self.kill() + if self.radius <= ASTEROID_MIN_RADIUS: + return + else: + random_angle = random.uniform(20, 50) + vector1 = self.velocity.rotate(random_angle) + vector2 = self.velocity.rotate(-random_angle) + radius = self.radius - ASTEROID_MIN_RADIUS + first = Asteroid(self.position.x, self.position.y, radius) + first.velocity = vector1 * 1.2 + second = Asteroid(self.position.x, self.position.y, radius) + second.velocity = vector2 * 1.2 \ No newline at end of file diff --git a/main.py b/main.py index a28db09..cbe7d83 100644 --- a/main.py +++ b/main.py @@ -46,6 +46,10 @@ def main(): if asteroid.collision(player): print("Game over!") return + for bullet in shots: + if asteroid.collision(bullet): + bullet.kill() + asteroid.split() pygame.display.flip()