diff options
Diffstat (limited to 'asteroid.py')
| -rw-r--r-- | asteroid.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/asteroid.py b/asteroid.py index 3ab16d9..b59f3ff 100644 --- a/asteroid.py +++ b/asteroid.py @@ -1,4 +1,6 @@ +import random from circleshape import * +from constants import * class Asteroid(CircleShape): def __init__(self, x, y, radius): @@ -9,3 +11,18 @@ class Asteroid(CircleShape): def update(self, dt): self.position += self.velocity * dt + + def split(self): + self.kill() + if self.radius <= ASTEROID_MIN_RADIUS: + return + rand_angle = random.uniform(20, 50) + new_radius = self.radius - ASTEROID_MIN_RADIUS + a = self.velocity.rotate(rand_angle) + b = self.velocity.rotate(-rand_angle) + asteroid = Asteroid(self.position.x, self.position.y, new_radius) + asteroid.velocity = a * 1.2 + asteroid = Asteroid(self.position.x, self.position.y, new_radius) + asteroid.velocity = b * 1.2 + + |
