You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.5 KiB

1 year ago
  1. class Enemy(pygame.sprite.Sprite):
  2. def __init__(self, x, y, heart, health):
  3. super().__init__()
  4. self.image = pygame.image.load("elf.png").convert_alpha()
  5. self.rect = self.image.get_rect()
  6. self.rect.center = (x, y)
  7. self.image = pygame.transform.smoothscale(self.image, (self.rect.w * screen_scale_factor, self.rect.h * screen_scale_factor) )
  8. self.path = 0
  9. self.health = health
  10. self.alive = 1
  11. self.heart = heart
  12. self.speed = 2 *screen_scale_factor
  13. def damage(self, amount):
  14. self.health = self.health - amount
  15. if(self.health <= 0):
  16. self.alive = 0
  17. def move(self, player):
  18. if (self.path == 0):
  19. if (self.rect.right < 300 *screen_scale_factor):
  20. self.rect.move_ip(self.speed,0)
  21. else:
  22. self.path = 1
  23. if (self.path == 1):
  24. if(self.rect.bottom < 890 *screen_scale_factor):
  25. self.rect.move_ip(0,self.speed)
  26. else:
  27. self.path = 2
  28. if(self.path == 2):
  29. if(self.rect.right < 1128 *screen_scale_factor):
  30. self.rect.move_ip(self.speed,0)
  31. else:
  32. self.path = 3
  33. if (self.path == 3):
  34. if(self.rect.top > 516*screen_scale_factor):
  35. self.rect.move_ip(0,-self.speed)
  36. else:
  37. self.path = 4
  38. if (self.path == 4):
  39. if(self.rect.left > 847*screen_scale_factor):
  40. self.rect.move_ip(-self.speed,0)
  41. else:
  42. self.path = 5
  43. if (self.path == 5):
  44. if(self.rect.top > 246*screen_scale_factor):
  45. self.rect.move_ip(0,-self.speed)
  46. else:
  47. self.path = 6
  48. if (self.path == 6):
  49. if (self.rect.right < 1248*screen_scale_factor):
  50. self.rect.move_ip(self.speed,0)
  51. else:
  52. self.path = 7
  53. if (self.path == 7):
  54. if (self.rect.bottom < 570*screen_scale_factor):
  55. self.rect.move_ip(0,self.speed)
  56. else:
  57. self.path = 8
  58. if (self.path == 8):
  59. if (self.rect.right < 1548*screen_scale_factor):
  60. self.rect.move_ip(self.speed,0)
  61. else:
  62. self.path = 'end'
  63. if (self.path == 'end'):
  64. self.alive = 0
  65. self.heart.lives -= 20
  66. def draw(self, surface):
  67. surface.blit(self.image, self.rect)