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