Я добавил возможность врагам стрелять, но в итоге отрисовка ВРАГА, которая раньше работала, начала вызывать ошибку. Я прикрепил код ниже. Лишний код я уберу (то как враг рандомит движение) также тут будут комментарии но на них не обращайте внимание, я переделываю старый проект и починю их позже. самое начало, откуда всё вызывается. main.py:
enemybullets = Group()
enemys = Group()
controls.enemys(enemys, screen, enemybullets, gamestat)
controls.py:
from enemybullet import Enemybullet
from enemy import Enemy
def enemys(enemys, enemybullets, screen, gamestat):
if len(enemys) == 0:
enemys.add(Enemy(gamestat))
for enemy in enemys:
enemy.draw(screen)
enemy.update()
if enemy.readypow:
enemybullets.add(Enemybullet(enemy))
enemy.py:
import pygame
import random
class Enemy(pygame.sprite.Sprite):
def __init__(self, gamestat):
super(Enemy, self).__init__()
if gamestat.enemy_blueb:
self.paint = [pygame.image.load(r'paint\enemy\BluebSprite\blueb1.png'), pygame.image.load(r'paint\enemy\BluebSprite\blueb2.png')]
self.powpaint = [pygame.image.load(r'paint\enemy\BluebSprite\bluebpow1.png'), pygame.image.load(r'paint\enemy\BluebSprite\bluebpow2.png'),
pygame.image.load(r'paint\enemy\BluebSprite\bluebpow3.png'), pygame.image.load(r'paint\enemy\BluebSprite\bluebpow4.png')]
self.enemyrect = pygame.image.load(r'paint\enemy\BluebSprite\blueb1.png')
self.powerpaint = [pygame.image.load(r'paint\enemy\BluebSprite\power\pow.png'), pygame.image.load(r'paint\enemy\BluebSprite\power\pow1.png'),
pygame.image.load(r'paint\enemy\BluebSprite\power\pow2.png'), pygame.image.load(r'paint\enemy\BluebSprite\power\pow3.png'),
pygame.image.load(r'paint\enemy\BluebSprite\power\pow4.png')]
self.rect = self.enemyrect.get_rect()
self.right = False
self.left = False
self.down = False
self.up = False
self.rightchance = 10
self.leftchance = -10
self.downchance = 10
self.upchance = -10
self.xmove = 0
self.ymove = 0
self.xchance = 0
self.ychance = 0
self.standartanim = 0
self.powanim = 0
self.timer = 0
self.endtimer = 0
self.powtimer = 0
self.powendtimer = 0
self.readypow = False
self.powing = False
self.rect.centerx = random.randint(1128, 1792)
self.rect.centery = random.randint(128, 952)
def draw(self, screen):
if self.standartanim + 1 >=30:
self.standartanim = 0
if self.powanim + 1 >=30:
self.powanim = 0
self.powing = False
if self.powing:
screen.blit(self.powpaint[self.powpaint // 5], (self.rect)) #отрисовка спрайта при стрельбе
self.powanim += 2 #скорость отрисовки
if self.powanim >= 30: #завершение анимации если animCount >= 30
self.laser = False
else:
screen.blit(self.powpaint[self.standartanim // 15], (self.rect)) #отрисовка спрайта
self.standartanim += 1
ошибку выдаёт: screen.blit(self.powpaint[self.standartanim // 15], (self.rect))