Пример #1
0
 def render(self):
     "draw white circle with red line pointing to the current angle"
     center = Vect(self.radius, self.radius)
     end = center.add_polar(self.radius, self.angle)
     pygame.draw.circle(self.surf, (255, 255, 255), center, self.radius)
     pygame.draw.line(self.surf, (255, 0, 0), center, end)
     return self.surf, self._surf_coord()
Пример #2
0
 def spawn_asteroid(self):
     "spawn asteroid at random position, not in the ship's danger zone"
     pos = Vect.get_random(self.width, self.height)
     ast = Asteroid(pos)
     while self.ship.in_danger_zone(ast):
         pos = Vect.get_random(self.width, self.height)
         ast = Asteroid(pos)
     return ast
Пример #3
0
 def shoot(self):
     "shoot a projectile and return it, None if gun is still recharging"
     if (self.age - self.last_shoot_time) >= self.RECHARGE_TIME:
         vel = Vect(self.vel.x, self.vel.y)
         pos = Vect(self.pos.x, self.pos.y)
         pos = pos.add_polar(self.radius, self.angle)
         proj = Projectile(pos, vel, self.angle)
         self.last_shoot_time = self.age
         return proj
Пример #4
0
 def __init__(self, pos, speed=None, angle=None):
     vel = Vect(0, 0)
     if not speed:
         speed = random.random() * self.MAX_SPEED
     if not angle:
         angle = utils.random_angle()
     vel += vel.add_polar(speed, angle)
     super(Asteroid, self).__init__(pos, vel, angle)
     self.ang_vel = random.random() * self.MAX_ANG_VEL
     self.ang_vel *= random.choice([1, -1])
     self.image = pygame.image.load("assets/images/asteroid_blue.png")
     self.exp_image = pygame.image.load("assets/images/explosion.png")
     self.sound_explosion = pygame.mixer.Sound("assets/sounds/explode.wav")
     self.explosion_time = None