def update(self): if not self.objective: # E' morto l'obiettivo self.rect = self.rect.move(-K_ENEMY_MOV, 0) if self.rect.right < -5: self.kill() if self.rect.centerx > K_WINDOW_DIM[0] - 60: # Deve entrare nella finestra self.rect = self.rect.move(-K_ENEMY_MOV, 0) elif self.cooldown: # Attende self.cooldown -= 1 else: # Si muove o spara if self.rect.centery - 30 < self.objective < self.rect.centery + 30: # Spara bull = elements.v_bullet((253,253,0), (self.rect.left, self.rect.centery), (-1,0), 0.3) en_bullets.add(bull) self.cooldown = int(K_COOLDOWN * 15 / math.log(game_m.get_level()+1)) + random.randint(10, 200) p = game_m.get_random_player() if p: self.objective = p.rect.centery else: if self.rect.centery < self.objective: self.rect = self.rect.move(0, K_ENEMY_MOV) else: self.rect = self.rect.move(0, -K_ENEMY_MOV)
def update(self): if not self.cooldown: if self.active: self.ammo -= 1 self.cooldown = K_COOLDOWN * 10 x = elements.v_bullet( ((random.randint(1, 255)), (random.randint(1, 255)), (random.randint(1, 255))), (self.father.rect.topright), self.direction, father=self.father, ) snd_master.play("beam") bullets.add(x) if not self.ammo: game_master.game_m.set_base_weapon(self.father) self.kill() else: self.cooldown -= 1