def shoot(self, fire_rate, bullet_speed, delay):
     self.right_now = pygame.time.get_ticks()
     if self.delay < self.right_now - self.last_burst < self.delay*2:
         self.shoot_now = pygame.time.get_ticks()
         if self.shoot_now - self.last_shot > self.fire_rate:
             self.last_shot = self.shoot_now
             bullet = mob_bullet.Mob_bullets(self.rect.centerx, self.rect.centery, 0, self.bullet_speed, 0)
             bullets_group.add(bullet)
     elif self.right_now - self.last_burst < self.delay:
         pass
     else:
         self.last_burst = self.right_now
Example #2
0
 def shoot(self):
     if self.shoot_seq == 1:
         now = pygame.time.get_ticks()
         if now - self.last_shot > 200:
             self.last_shot = now
             bullets = mob_bullet.Mob_bullets(self.rect.centerx,
                                              self.rect.bottom, 0, 4, 0)
             bullets_group.add(bullets)
     if self.rect.left < 0:
         self.shoot_seq = 2
     if self.shoot_seq == 2:
         now = pygame.time.get_ticks()
         if now - self.last_shot > 400:
             self.last_shot = now
             self.rotate += float(45)
             speedx = float(4) * math.cos(
                 (self.rotate / float(360)) * float(2) * math.pi)
             speedy = float(4) * math.sin(
                 (self.rotate / float(360)) * float(2) * math.pi)
             bullets = mob_bullet.Mob_bullets(self.rect.centerx,
                                              self.rect.bottom, speedx,
                                              speedy, 0)
             bullets_group.add(bullets)
             right_now = pygame.time.get_ticks()
             if right_now > 40000:
                 self.shoot_seq = 3
     if self.shoot_seq == 3:
         ok_now = pygame.time.get_ticks()
         if ok_now - self.last_shot > 1000:
             self.last_shot = ok_now
             for i in range(360):
                 if i % 45 == 0:
                     speedx = float(4) * math.cos(
                         (i / float(360)) * float(2) * math.pi)
                     speedy = float(4) * math.sin(
                         (i / float(360)) * float(2) * math.pi)
                     bullets = mob_bullet.Mob_bullets(
                         self.rect.centerx, self.rect.bottom, speedx,
                         speedy, 90 - i)
                     bullets_group.add(bullets)