import pygame from bullet import Bullet class Enemy: def __init__(self, game, screen): self.pos = [0,0] self.size = 20 self.health = 200 self.speed = 3 self.screen = screen self.game = game self.color = (255,0,0) def target(self, obj): self.target_obj = obj def draw(self): pygame.draw.rect(self.screen, self.color, pygame.rect.Rect(self.pos, (self.size, self.size))) def move(self, x, y): self.pos[0] += x * self.speed self.pos[1] += y * self.speed def get_pos(self): return self.pos def get_center_pos(self): return [self.pos[0] + 0.5*self.size, self.pos[1] + 0.5*self.size] def set_pos(self, x,y): self.pos = [x,y] def update(self): dx = self.target_obj.pos[0] - self.pos[0] dy = self.target_obj.pos[1] - self.pos[1] length = (dx**2+dy**2)**(0.5) x = dx/length y = dy/length self.move(x,y) self.check_collisions() if self.health <= 0: self.game.remove_object(self) self.game.add_score(1) def check_collisions(self): for obj in self.game.get_objects(): if not isinstance(obj, Bullet): continue bullet = obj bullet_pos = bullet.get_pos() if self.pos[0] <= bullet_pos[0] <= self.pos[0]+self.size and self.pos[1] <= bullet_pos[1] <= self.pos[1]+self.size: self.health -= 20 self.game.remove_object(bullet)