Advertisement
Orleon

Artem

Nov 29th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.25 KB | None | 0 0
  1. #Создаём класс моба
  2. class Mob_left(pygame.sprite.Sprite):
  3.     def __init__(self):
  4.         pygame.sprite.Sprite.__init__(self)
  5.        # self.image = pygame.Surface((30, 25), pygame.SRCALPHA)  # Cоздаёт картинку спрайта в виде прямоугольника
  6.         #self.image.fill(RED)
  7.         self.hp = 60
  8.  
  9.         self.image = pygame.image.load(imgdir + '/enemy4/1.png')
  10.         self.image = pygame.transform.scale(self.image, (75, 75))
  11.  
  12.         self.rect = self.image.get_rect()
  13.         self.rect.x = 0
  14.         self.rect.y = random.randrange(0,height)
  15.         self.speedx = random.randrange(1,8)
  16.         self.speedy = random.randrange(-8,8)
  17.  
  18.         self.copy = self.image  # Копия картинки моба
  19.         self.position = Vector2(self.rect.left)  # Запоминаем позицию моба
  20.  
  21.         self.start = Vector2(0, 1)  # Напрваление взгляда вниз
  22.         self.direction = Vector2(self.speedx, self.speedy)  # Направление взгляда моба
  23.         self.angle = self.start.angle_to(self.direction)  # Угол поворота моба
  24.         self.image = pygame.transform.rotate(self.copy, -self.angle)  # Поворот картинки в нужную сторону
  25.  
  26.         self.copy = self.image  # Копия картинки моба
  27.         self.position = Vector2(self.rect.left)  # Запоминаем позицию моба
  28.         self.angle = 0  # Угол поворота моба
  29.         self.direction = Vector2(1, 0)
  30.  
  31.         self.anim_speed = 1  # Скорость анимации
  32.         self.frame = 0  # Текущий кадр анимации
  33.         self.anim = []  # Пустой список с кадрами для анимации
  34.  
  35.         for i in range(1, 10):  # Цикл для добавления картинок анимации
  36.             image = pygame.image.load(imgdir + f'/enemy4/{i}.png')  # Выбираем картинку для загрузки
  37.             image = pygame.transform.scale(image, (75, 75))  # Уменьшаем картинку
  38.             self.anim.append(image)  # Добавляем картинку в список
  39.  
  40.     def animation(self):
  41.         self.image = self.anim[self.frame // self.anim_speed]        #Переключаем картинки анимации
  42.         self.image = pygame.transform.rotate(self.image, self.angle) #Поворот картинки в нужную сторону
  43.         self.rect = self.image.get_rect(center =  self.rect.center)  #Определили новую рамку
  44.         self.frame += 1                                              #Меняем кадр анимации
  45.         if self.frame == self.anim_speed * len(self.anim):           #Проверяем достижение конца картинок
  46.             self.frame = 0                                           #Сбрасываем счётчик кадров
  47.  
  48.  
  49.     def rotate(self, rotate_speed):
  50.         self.direction.rotate_ip(-rotate_speed)     # Вращаем направление
  51.         self.angle += rotate_speed
  52.         self.image = pygame.transform.rotate(self.copy, self.angle)    # Поворот копии на угол
  53.         self.rect = self.image.get_rect(center = self.rect.center)        # Новая рамка нашего спрайта
  54.  
  55.     def update(self):
  56.         self.animation()
  57.         self.rotate(5)
  58.         self.rect.x += self.speedx
  59.         self.rect.y += self.speedy
  60.  
  61.         if self.rect.right > width or self.rect.y < 0 or self.rect.y > height:
  62.             self.rect.x = 0
  63.             self.rect.y = random.randrange(0, height)
  64.             self.speedx = random.randrange(1, 8)
  65.             self.speedy = random.randrange(-8, 8)
  66.  
  67. #Создаём класс моба
  68. class Mob_right(pygame.sprite.Sprite):
  69.     def __init__(self):
  70.         pygame.sprite.Sprite.__init__(self)
  71.         #self.image = pygame.Surface((35, 20))    # Cоздаёт картинку спрайта в виде прямоугольника
  72.         #self.image.fill(WHITE)
  73.         self.hp = 30
  74.  
  75.         self.image = pygame.image.load(imgdir + '/enemy3/1.png')
  76.         self.image = pygame.transform.scale(self.image, (70, 80))
  77.  
  78.         self.rect = self.image.get_rect()
  79.  
  80.         self.rect.x = width
  81.         self.rect.y = random.randrange(0,height) #Случайное положение по вертикале
  82.  
  83.         self.speedx = -random.randrange(3,6)
  84.         self.speedy = random.randrange(-6,6)
  85.  
  86.         self.copy = self.image  # Копия картинки моба
  87.         self.position = Vector2(self.rect.left)  # Запоминаем позицию моба
  88.  
  89.         self.start = Vector2(0, 1)                                      #Напрваление взгляда вниз
  90.         self.direction = Vector2(self.speedx, self.speedy)              #Направление взгляда моба
  91.         self.angle = self.start.angle_to(self.direction)                #Угол поворота моба
  92.         self.image = pygame.transform.rotate(self.copy, -self.angle)    #Поворот картинки в нужную сторону
  93.  
  94.         self.anim_speed = 2  # Скорость анимации
  95.         self.frame = 0  # Текущий кадр анимации
  96.         self.anim = []  # Пустой список с кадрами для анимации
  97.  
  98.         for i in range(1, 10):  # Цикл для добавления картинок анимации
  99.             image = pygame.image.load(imgdir + f'/enemy3/{i}.png')  # Выбираем картинку для загрузки
  100.             image = pygame.transform.scale(image, (70, 80))  # Уменьшаем картинку
  101.             self.anim.append(image)  # Добавляем картинку в список
  102.  
  103.     def animation(self):
  104.         self.image = self.anim[self.frame // self.anim_speed]        #Переключаем картинки анимации
  105.         self.image = pygame.transform.rotate(self.image, -self.angle) #Поворот картинки в нужную сторону
  106.         self.rect = self.image.get_rect(center = self.rect.center)  #Определили новую рамку
  107.         self.frame += 1                                              #Меняем кадр анимации
  108.         if self.frame == self.anim_speed * len(self.anim):           #Проверяем достижение конца картинок
  109.             self.frame = 0                                           #Сбрасываем счётчик кадров
  110.  
  111.     def update(self):
  112.         self.animation()
  113.         self.rect.x += self.speedx
  114.         self.rect.y += self.speedy
  115.  
  116.         if self.rect.x < 0 or self.rect.y < 0 or self.rect.y > height:
  117.             self.rect.x = width
  118.             self.rect.y = random.randrange(0, height)  # Случайное положение по вертикале
  119.             self.speedx = -random.randrange(3, 6)
  120.             self.speedy = random.randrange(-6, 6)
  121.             self.direction = Vector2(self.speedx, self.speedy)  # Направление взгляда моба
  122.             self.angle = self.start.angle_to(self.direction)  # Угол поворота моба
  123.  
  124. #Создаём класс моба
  125. class Mob_up(pygame.sprite.Sprite):
  126.     def __init__(self):
  127.         pygame.sprite.Sprite.__init__(self)
  128.         #self.image = pygame.Surface((30, 25), pygame.SRCALPHA)  # Cоздаёт картинку спрайта в виде прямоугольника
  129.         #self.image.fill(YELLOW)
  130.         self.hp = 1
  131.  
  132.         self.image = pygame.image.load(imgdir + '/enemy5/grenade.png')
  133.         self.image = pygame.transform.scale(self.image, (35, 40))
  134.  
  135.         self.rect = self.image.get_rect()
  136.  
  137.  
  138.         self.rect.x = random.randrange(0,width)
  139.         self.rect.y = 0
  140.  
  141.  
  142.         self.speedx = random.randrange(-6,6)
  143.         self.speedy = random.randrange(1,6)
  144.  
  145.         self.copy = self.image  # Копия картинки моба
  146.         self.position = Vector2(self.rect.center)  # Запоминаем позицию моба
  147.         self.angle = 0  # Угол поворота моба
  148.         self.direction = Vector2(0, -1)
  149.  
  150.  
  151.     def rotate(self, rotate_speed):
  152.         self.direction.rotate_ip(-rotate_speed)  # Вращаем направление
  153.         self.angle += rotate_speed
  154.         self.image = pygame.transform.rotate(self.copy, self.angle)  # Поворот копии на угол
  155.         self.rect = self.image.get_rect(center=self.rect.center)  # Новая рамка нашего спрайта
  156.  
  157.     def update(self):
  158.         self.rotate(-5)
  159.         self.rect.x += self.speedx
  160.         self.rect.y += self.speedy
  161.  
  162.         if self.rect.y > height or self.rect.right > width or self.rect.x < 0:
  163.  
  164.             self.rect.x = random.randrange(0, width)
  165.             self.rect.y = 0
  166.  
  167.             self.speedx = random.randrange(-6, 6)
  168.             self.speedy = random.randrange(1, 6)
  169.  
  170. #Создаём класс моба
  171. class Mob_down(pygame.sprite.Sprite):
  172.     def __init__(self):
  173.         pygame.sprite.Sprite.__init__(self)
  174.         #self.image = pygame.Surface((30, 15))    # Cоздаёт картинку спрайта в виде прямоугольника
  175.         #self.image.fill(Azure)
  176.         self.hp = 90
  177.  
  178.         self.image = pygame.image.load(imgdir + '/enemy1/1.png')
  179.         self.image = pygame.transform.scale(self.image, (90, 90))
  180.  
  181.         self.rect = self.image.get_rect()
  182.  
  183.         self.rect.x = random.randrange(0,width)
  184.         self.rect.y = random.randrange(height) #Случайное положение по вертикале
  185.  
  186.         self.speedy = -random.randrange(2,5)
  187.         self.speedx = random.randrange(-5,5)
  188.  
  189.         self.copy = self.image  # Копия картинки моба
  190.         self.position = Vector2(self.rect.left)  # Запоминаем позицию моба
  191.  
  192.         self.start = Vector2(0, 1)  # Напрваление взгляда вниз
  193.         self.direction = Vector2(self.speedx, self.speedy)  # Направление взгляда моба
  194.         self.angle = self.start.angle_to(self.direction)  # Угол поворота моба
  195.         self.image = pygame.transform.rotate(self.copy, -self.angle)  # Поворот картинки в нужную сторону
  196.  
  197.         self.anim_speed = 2 # Скорость анимации
  198.         self.frame = 0  # Текущий кадр анимации
  199.         self.anim = []  # Пустой список с кадрами для анимации
  200.  
  201.         for i in range(1, 10):  # Цикл для добавления картинок анимации
  202.             image = pygame.image.load(imgdir + f'/enemy1/{i}.png')  # Выбираем картинку для загрузки
  203.             image = pygame.transform.scale(image, (90, 90))  # Уменьшаем картинку
  204.             self.anim.append(image)  # Добавляем картинку в список
  205.  
  206.     def animation(self):
  207.         self.image = self.anim[self.frame // self.anim_speed]  # Переключаем картинки анимации
  208.         self.image = pygame.transform.rotate(self.image, -self.angle)  # Поворот картинки в нужную сторону
  209.         self.rect = self.image.get_rect(center=self.rect.center)  # Определили новую рамку
  210.         self.frame += 1  # Меняем кадр анимации
  211.         if self.frame == self.anim_speed * len(self.anim):  # Проверяем достижение конца картинок
  212.             self.frame = 0  # Сбрасываем счётчик кадров
  213.  
  214.     def update(self):
  215.         self.animation()
  216.         self.rect.x += self.speedx
  217.         self.rect.y += self.speedy
  218.  
  219.         if self.rect.right > width or self.rect.x < 0 or self.rect.y > height:
  220.  
  221.             self.rect.x = random.randrange(0, width)
  222.             self.rect.y = random.randrange(height)  # Случайное положение по вертикале
  223.             self.speedy = -random.randrange(2, 5)
  224.             self.speedx = random.randrange(-5, 5)
  225.             self.direction = Vector2(self.speedx, self.speedy)  # Направление взгляда моба
  226.             self.angle = self.start.angle_to(self.direction)  # Угол поворота моба
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement