Adding in asteroid splitting

This commit is contained in:
franky212
2024-10-28 21:39:11 -06:00
parent 48acf7759a
commit c87eb4151b
2 changed files with 22 additions and 1 deletions

View File

@@ -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)
@@ -9,3 +12,17 @@ class Asteroid(CircleShape):
def update(self, dt):
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

View File

@@ -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()