Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Создаём класс моба
- class Mob_left(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- # self.image = pygame.Surface((30, 25), pygame.SRCALPHA) # Cоздаёт картинку спрайта в виде прямоугольника
- #self.image.fill(RED)
- self.hp = 60
- self.image = pygame.image.load(imgdir + '/enemy4/1.png')
- self.image = pygame.transform.scale(self.image, (75, 75))
- self.rect = self.image.get_rect()
- self.rect.x = 0
- self.rect.y = random.randrange(0,height)
- self.speedx = random.randrange(1,8)
- self.speedy = random.randrange(-8,8)
- self.copy = self.image # Копия картинки моба
- self.position = Vector2(self.rect.left) # Запоминаем позицию моба
- self.start = Vector2(0, 1) # Напрваление взгляда вниз
- self.direction = Vector2(self.speedx, self.speedy) # Направление взгляда моба
- self.angle = self.start.angle_to(self.direction) # Угол поворота моба
- self.image = pygame.transform.rotate(self.copy, -self.angle) # Поворот картинки в нужную сторону
- self.copy = self.image # Копия картинки моба
- self.position = Vector2(self.rect.left) # Запоминаем позицию моба
- self.angle = 0 # Угол поворота моба
- self.direction = Vector2(1, 0)
- self.anim_speed = 1 # Скорость анимации
- self.frame = 0 # Текущий кадр анимации
- self.anim = [] # Пустой список с кадрами для анимации
- for i in range(1, 10): # Цикл для добавления картинок анимации
- image = pygame.image.load(imgdir + f'/enemy4/{i}.png') # Выбираем картинку для загрузки
- image = pygame.transform.scale(image, (75, 75)) # Уменьшаем картинку
- self.anim.append(image) # Добавляем картинку в список
- def animation(self):
- self.image = self.anim[self.frame // self.anim_speed] #Переключаем картинки анимации
- self.image = pygame.transform.rotate(self.image, self.angle) #Поворот картинки в нужную сторону
- self.rect = self.image.get_rect(center = self.rect.center) #Определили новую рамку
- self.frame += 1 #Меняем кадр анимации
- if self.frame == self.anim_speed * len(self.anim): #Проверяем достижение конца картинок
- self.frame = 0 #Сбрасываем счётчик кадров
- def rotate(self, rotate_speed):
- self.direction.rotate_ip(-rotate_speed) # Вращаем направление
- self.angle += rotate_speed
- self.image = pygame.transform.rotate(self.copy, self.angle) # Поворот копии на угол
- self.rect = self.image.get_rect(center = self.rect.center) # Новая рамка нашего спрайта
- def update(self):
- self.animation()
- self.rotate(5)
- self.rect.x += self.speedx
- self.rect.y += self.speedy
- if self.rect.right > width or self.rect.y < 0 or self.rect.y > height:
- self.rect.x = 0
- self.rect.y = random.randrange(0, height)
- self.speedx = random.randrange(1, 8)
- self.speedy = random.randrange(-8, 8)
- #Создаём класс моба
- class Mob_right(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- #self.image = pygame.Surface((35, 20)) # Cоздаёт картинку спрайта в виде прямоугольника
- #self.image.fill(WHITE)
- self.hp = 30
- self.image = pygame.image.load(imgdir + '/enemy3/1.png')
- self.image = pygame.transform.scale(self.image, (70, 80))
- self.rect = self.image.get_rect()
- self.rect.x = width
- self.rect.y = random.randrange(0,height) #Случайное положение по вертикале
- self.speedx = -random.randrange(3,6)
- self.speedy = random.randrange(-6,6)
- self.copy = self.image # Копия картинки моба
- self.position = Vector2(self.rect.left) # Запоминаем позицию моба
- self.start = Vector2(0, 1) #Напрваление взгляда вниз
- self.direction = Vector2(self.speedx, self.speedy) #Направление взгляда моба
- self.angle = self.start.angle_to(self.direction) #Угол поворота моба
- self.image = pygame.transform.rotate(self.copy, -self.angle) #Поворот картинки в нужную сторону
- self.anim_speed = 2 # Скорость анимации
- self.frame = 0 # Текущий кадр анимации
- self.anim = [] # Пустой список с кадрами для анимации
- for i in range(1, 10): # Цикл для добавления картинок анимации
- image = pygame.image.load(imgdir + f'/enemy3/{i}.png') # Выбираем картинку для загрузки
- image = pygame.transform.scale(image, (70, 80)) # Уменьшаем картинку
- self.anim.append(image) # Добавляем картинку в список
- def animation(self):
- self.image = self.anim[self.frame // self.anim_speed] #Переключаем картинки анимации
- self.image = pygame.transform.rotate(self.image, -self.angle) #Поворот картинки в нужную сторону
- self.rect = self.image.get_rect(center = self.rect.center) #Определили новую рамку
- self.frame += 1 #Меняем кадр анимации
- if self.frame == self.anim_speed * len(self.anim): #Проверяем достижение конца картинок
- self.frame = 0 #Сбрасываем счётчик кадров
- def update(self):
- self.animation()
- self.rect.x += self.speedx
- self.rect.y += self.speedy
- if self.rect.x < 0 or self.rect.y < 0 or self.rect.y > height:
- self.rect.x = width
- self.rect.y = random.randrange(0, height) # Случайное положение по вертикале
- self.speedx = -random.randrange(3, 6)
- self.speedy = random.randrange(-6, 6)
- self.direction = Vector2(self.speedx, self.speedy) # Направление взгляда моба
- self.angle = self.start.angle_to(self.direction) # Угол поворота моба
- #Создаём класс моба
- class Mob_up(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- #self.image = pygame.Surface((30, 25), pygame.SRCALPHA) # Cоздаёт картинку спрайта в виде прямоугольника
- #self.image.fill(YELLOW)
- self.hp = 1
- self.image = pygame.image.load(imgdir + '/enemy5/grenade.png')
- self.image = pygame.transform.scale(self.image, (35, 40))
- self.rect = self.image.get_rect()
- self.rect.x = random.randrange(0,width)
- self.rect.y = 0
- self.speedx = random.randrange(-6,6)
- self.speedy = random.randrange(1,6)
- self.copy = self.image # Копия картинки моба
- self.position = Vector2(self.rect.center) # Запоминаем позицию моба
- self.angle = 0 # Угол поворота моба
- self.direction = Vector2(0, -1)
- def rotate(self, rotate_speed):
- self.direction.rotate_ip(-rotate_speed) # Вращаем направление
- self.angle += rotate_speed
- self.image = pygame.transform.rotate(self.copy, self.angle) # Поворот копии на угол
- self.rect = self.image.get_rect(center=self.rect.center) # Новая рамка нашего спрайта
- def update(self):
- self.rotate(-5)
- self.rect.x += self.speedx
- self.rect.y += self.speedy
- if self.rect.y > height or self.rect.right > width or self.rect.x < 0:
- self.rect.x = random.randrange(0, width)
- self.rect.y = 0
- self.speedx = random.randrange(-6, 6)
- self.speedy = random.randrange(1, 6)
- #Создаём класс моба
- class Mob_down(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- #self.image = pygame.Surface((30, 15)) # Cоздаёт картинку спрайта в виде прямоугольника
- #self.image.fill(Azure)
- self.hp = 90
- self.image = pygame.image.load(imgdir + '/enemy1/1.png')
- self.image = pygame.transform.scale(self.image, (90, 90))
- self.rect = self.image.get_rect()
- self.rect.x = random.randrange(0,width)
- self.rect.y = random.randrange(height) #Случайное положение по вертикале
- self.speedy = -random.randrange(2,5)
- self.speedx = random.randrange(-5,5)
- self.copy = self.image # Копия картинки моба
- self.position = Vector2(self.rect.left) # Запоминаем позицию моба
- self.start = Vector2(0, 1) # Напрваление взгляда вниз
- self.direction = Vector2(self.speedx, self.speedy) # Направление взгляда моба
- self.angle = self.start.angle_to(self.direction) # Угол поворота моба
- self.image = pygame.transform.rotate(self.copy, -self.angle) # Поворот картинки в нужную сторону
- self.anim_speed = 2 # Скорость анимации
- self.frame = 0 # Текущий кадр анимации
- self.anim = [] # Пустой список с кадрами для анимации
- for i in range(1, 10): # Цикл для добавления картинок анимации
- image = pygame.image.load(imgdir + f'/enemy1/{i}.png') # Выбираем картинку для загрузки
- image = pygame.transform.scale(image, (90, 90)) # Уменьшаем картинку
- self.anim.append(image) # Добавляем картинку в список
- def animation(self):
- self.image = self.anim[self.frame // self.anim_speed] # Переключаем картинки анимации
- self.image = pygame.transform.rotate(self.image, -self.angle) # Поворот картинки в нужную сторону
- self.rect = self.image.get_rect(center=self.rect.center) # Определили новую рамку
- self.frame += 1 # Меняем кадр анимации
- if self.frame == self.anim_speed * len(self.anim): # Проверяем достижение конца картинок
- self.frame = 0 # Сбрасываем счётчик кадров
- def update(self):
- self.animation()
- self.rect.x += self.speedx
- self.rect.y += self.speedy
- if self.rect.right > width or self.rect.x < 0 or self.rect.y > height:
- self.rect.x = random.randrange(0, width)
- self.rect.y = random.randrange(height) # Случайное положение по вертикале
- self.speedy = -random.randrange(2, 5)
- self.speedx = random.randrange(-5, 5)
- self.direction = Vector2(self.speedx, self.speedy) # Направление взгляда моба
- self.angle = self.start.angle_to(self.direction) # Угол поворота моба
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement